@font-face{font-family:LXGW WenKai Wordmark;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/wenkai-wordmark.woff2)format("woff2");unicode-range:U+7121,U+4EBA,U+4E4B,U+5883}.blog-zone{--blog-ink:hsl(var(--foreground));--blog-body:hsl(var(--foreground) / .78);--blog-muted:hsl(var(--foreground) / .58);--blog-faint:hsl(var(--foreground) / .42);--blog-line:hsl(var(--foreground) / .1);--blog-fill:hsl(var(--foreground) / .045);--blog-img-edge:inset 0 0 0 1px #0000001a;--blog-measure:720px;--blog-display:"LXGW WenKai Wordmark", "Songti SC", "Noto Serif CJK SC", serif;min-height:100svh;color:var(--blog-body);background:hsl(var(--background));font-feature-settings:"cv11", "ss01"}.dark .blog-zone{--blog-img-edge:inset 0 0 0 1px #ffffff1a}body.blog-zone:before{display:none}.blog-shell{max-width:var(--blog-measure);margin-inline:auto;padding:40px 24px 48px}.blog-zone .footer{padding-bottom:0}.blog-topbar{justify-content:space-between;align-items:center;margin-bottom:72px;display:flex}.blog-topbar__controls{align-items:center;gap:4px;display:inline-flex}.blog-mark{width:40px;height:40px;transition:opacity .15s;display:inline-flex}.blog-mark:hover{opacity:.65}.blog-mark img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.dark .blog-mark img{filter:invert()}.blog-theme-toggle{width:34px;height:34px;color:var(--blog-faint);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,background .15s,scale .12s;display:inline-flex;position:relative}.blog-theme-toggle:before{content:"";position:absolute;inset:-3px}.blog-theme-toggle:hover{color:var(--blog-ink);background:hsl(var(--foreground) / .05)}.blog-theme-toggle:active{scale:.96}.blog-theme-toggle svg{width:18px;height:18px}.blog-theme-toggle [data-blog-icon]{display:none}html[data-theme-setting=light] .blog-theme-toggle [data-blog-icon=light],html[data-theme-setting=dark] .blog-theme-toggle [data-blog-icon=dark],html[data-theme-setting=system] .blog-theme-toggle [data-blog-icon=system]{display:inline-flex}.blog-masthead{margin-bottom:88px}.blog-masthead__wordmark{font-family:var(--blog-display);letter-spacing:-.03em;color:var(--blog-ink);font-size:50px;font-weight:400;line-height:1.15}.blog-masthead__tagline{color:var(--blog-muted);margin-top:20px;font-size:16px;line-height:25px}.blog-year{scroll-margin-top:24px}.blog-year+.blog-year{margin-top:40px}.blog-year__heading{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--blog-faint);margin-bottom:4px;font-size:13px;font-weight:500}.blog-list{margin:0;padding:0;list-style:none;position:relative}.blog-indicator{z-index:0;background:var(--blog-fill);opacity:0;pointer-events:none;will-change:transform;border-radius:12px;transition:transform .46s cubic-bezier(.25,1.18,.45,1.04),width .4s cubic-bezier(.25,1,.3,1),height .4s cubic-bezier(.25,1,.3,1),opacity .25s ease-out;position:absolute;top:0;left:0}.blog-row{z-index:1;transition:opacity .3s;position:relative}.blog-list.is-hovering .blog-row:not(:hover){opacity:.45}.blog-row__link{padding:16px 0 0;display:block}.blog-row__link:after{content:"";position:absolute;inset:0}.blog-row__title{letter-spacing:-.012em;text-wrap:balance;color:var(--blog-ink);font-size:19px;font-weight:550;line-height:1.45;transition:color .3s}.blog-row__excerpt{color:var(--blog-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.blog-row__meta{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:9px;padding-bottom:16px;display:flex}.blog-row__date{color:var(--blog-faint);font-variant-numeric:tabular-nums;font-size:13px;line-height:1.4}.blog-row__tags{flex-wrap:wrap;gap:6px;display:inline-flex}.blog-row__tag{z-index:1;color:var(--blog-faint);background:hsl(var(--foreground) / .04);border-radius:999px;padding:4px 9px;font-size:11.5px;line-height:1;transition:color .2s,background-color .2s;position:relative}.blog-row:hover .blog-row__tag{color:var(--blog-muted);background:hsl(var(--foreground) / .07)}.blog-row:hover .blog-row__tag:hover,.blog-row__tag:hover{color:var(--blog-accent);background:color-mix(in srgb, var(--blog-accent) 12%, transparent)}.blog-yearrail{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 2px;margin-bottom:12px;font-size:13px;display:flex}.blog-yearrail__year{color:var(--blog-faint);border-radius:6px;align-items:center;gap:8px;padding:2px 8px;transition:color .15s,background .15s;display:inline-flex}.blog-yearrail__year:first-child{padding-left:0}.blog-yearrail__tick{display:none}.blog-yearrail__year:hover,.blog-yearrail__year.is-active{color:var(--blog-ink)}@media (width>=1200px){.blog-yearrail{top:50%;left:max(20px, calc((100vw - var(--blog-measure)) / 2 - 132px));z-index:20;flex-direction:column;align-items:flex-start;gap:0;margin:0;position:fixed;transform:translateY(-50%)}.blog-yearrail__year{color:var(--blog-faint);border-radius:0;gap:12px;padding:7px 0}.blog-yearrail__tick{background:hsl(var(--foreground) / .25);width:18px;height:1px;transition:width .2s,background .2s;display:block}.blog-yearrail__label{opacity:.45;transition:opacity .2s,transform .2s;transform:translate(-4px)}.blog-yearrail:hover .blog-yearrail__label{opacity:1;transform:none}.blog-yearrail__year:hover .blog-yearrail__tick,.blog-yearrail__year.is-active .blog-yearrail__tick{background:var(--blog-ink);width:28px}.blog-yearrail__year.is-active .blog-yearrail__label{opacity:1;color:var(--blog-ink);font-weight:550}.blog-year__heading{display:none}}.blog-preview{z-index:40;pointer-events:none;will-change:transform;width:240px;position:fixed;top:0;left:0}.blog-preview img{aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;width:100%;height:auto;box-shadow:0 18px 50px hsl(var(--foreground) / .14), var(--blog-img-edge);transform-origin:0;opacity:0;border-radius:12px;transition:transform .34s cubic-bezier(.22,1.2,.4,1),opacity .22s ease-out;display:block;transform:scale(.92)}.blog-preview.is-visible img{opacity:1;transform:scale(1)}.blog-preview.is-visible{view-transition-name:blog-hero}@media (prefers-reduced-motion:reduce){.blog-preview img{transition:opacity .15s;transform:none}.blog-preview.is-visible img{transform:none}}.blog-back{color:var(--blog-faint);align-items:center;gap:6px;margin-bottom:40px;font-size:14px;transition:color .15s;display:inline-flex}.blog-back:hover{color:var(--blog-ink)}@media (width>=1280px){.blog-back{display:none}}.blog-article__header{margin-bottom:44px}.blog-article__title{letter-spacing:-.02em;text-wrap:balance;color:var(--blog-ink);margin-bottom:14px;font-size:clamp(27px,4.4vw,34px);font-weight:600;line-height:1.3}.blog-article__meta{color:var(--blog-faint);font-variant-numeric:tabular-nums;font-size:14px;line-height:20px}.blog-article__meta span+span:before{content:"·";margin:0 8px}.blog-prose{letter-spacing:.003em;color:var(--blog-body);text-wrap:pretty;font-size:17.5px;line-height:1.85}.blog-prose>*+*{margin-top:1.4em}.blog-prose h2{letter-spacing:-.01em;text-wrap:balance;color:var(--blog-ink);margin-top:2.6em;margin-bottom:-.2em;font-size:22px;font-weight:600;line-height:1.4}.blog-prose h3{text-wrap:balance;color:var(--blog-ink);margin-top:2em;margin-bottom:-.3em;font-size:19px;font-weight:600;line-height:1.45}.blog-prose a{color:var(--blog-ink);text-decoration:underline;text-decoration-color:hsl(var(--foreground) / .3);text-underline-offset:3px;transition:text-decoration-color .15s}.blog-prose a:hover{text-decoration-color:currentColor}.blog-prose strong{color:var(--blog-ink);font-weight:600}.blog-prose blockquote{border-left:2px solid hsl(var(--foreground) / .18);color:var(--blog-muted);padding-left:22px}.blog-prose blockquote p{margin-top:.6em}.blog-prose ul{padding-left:24px;list-style:outside}.blog-prose ol{padding-left:24px;list-style:decimal}.blog-prose li::marker{color:var(--blog-faint)}.blog-prose li+li{margin-top:8px}.blog-prose :where(code,kbd,samp){font-family:var(--font-code);background:hsl(var(--foreground) / .06);border-radius:6px;padding:.15em .4em;font-size:.875em}.blog-prose pre{font-family:var(--font-code);background:hsl(var(--foreground) / .05);border-radius:12px;padding:16px 18px;font-size:14px;line-height:1.6;overflow-x:auto}.blog-prose pre code{background:0 0;padding:0}.blog-prose>img,.blog-prose p>img{width:auto;max-width:100%;height:auto;max-height:70vh;box-shadow:var(--blog-img-edge);border-radius:10px;margin-inline:auto;display:block}.blog-end{border-top:1px solid var(--blog-line);margin-top:44px;padding-top:28px}.blog-end__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 24px;display:flex}@media (width<=639px){.blog-end__bar{flex-direction:column;align-items:stretch}}.blog-adjacent{border-top:1px solid var(--blog-line);grid-template-columns:1fr 1fr;gap:16px;margin-top:44px;padding-top:28px;display:grid}.blog-adjacent__item{display:block}.blog-adjacent__item--next{text-align:right}.blog-adjacent__dir{color:var(--blog-faint);font-size:12.5px;display:block}.blog-adjacent__title{text-wrap:balance;color:var(--blog-muted);margin-top:6px;font-size:16px;font-weight:600;line-height:22px;transition:color .15s;display:block}.blog-adjacent__item:hover .blog-adjacent__title{color:var(--blog-ink)}.blog-tags{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.blog-tag{color:var(--blog-muted);background:hsl(var(--foreground) / .05);border-radius:999px;padding:6px 11px;font-size:12.5px;line-height:1;transition:color .16s,background-color .16s;display:inline-flex}.blog-tag:hover{color:var(--blog-ink);background:hsl(var(--foreground) / .09)}.blog-article-wrap{position:relative}.blog-aside{display:none}@media (width>=1280px){.blog-aside{z-index:45;width:210px;display:block;position:absolute;top:0;bottom:0;left:-240px}}.blog-aside__sticky{padding-left:16px;padding-right:30px;position:sticky;top:96px}.blog-back-rail{color:var(--blog-faint);align-items:center;gap:6px;font-size:13px;transition:color .15s;display:inline-flex}.blog-back-rail:hover{color:var(--blog-ink)}.blog-back-rail+.toc-container:not([hidden]){margin-top:22px}.toc-container{display:none}@media (width>=1280px){.toc-container:not([hidden]){display:block}}.toc-inner{position:static}.toc-content-wrapper{position:relative}.toc-sliding-pill{background:color-mix(in srgb, var(--blog-accent) 20%, transparent);opacity:0;z-index:0;pointer-events:none;border-radius:8px;width:0;height:0;transition:top .48s cubic-bezier(.25,1.22,.45,1.04),height .48s cubic-bezier(.25,1.22,.45,1.04),left .48s cubic-bezier(.25,1.22,.45,1.04),width .48s cubic-bezier(.25,1.22,.45,1.04),opacity .25s ease-out;position:absolute;top:0;left:0}.toc-progress-timeline{opacity:.6;background:linear-gradient(var(--blog-line) 2px, transparent 2px);z-index:1;background-size:100% 8px;width:4px;position:absolute;top:0;bottom:0;left:-16px;overflow:hidden}.toc-progress-fill{background:linear-gradient(var(--blog-accent) 2px, transparent 2px);background-size:100% 8px;width:4px;height:0;transition:height .1s linear;position:absolute;top:0;left:0}.toc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex;position:relative}.toc-item{z-index:1;position:relative}.toc-link{color:var(--blog-muted);border-radius:8px;padding:6px 0;font-size:12px;line-height:1.35;transition:color .2s cubic-bezier(.4,0,.2,1);display:inline-block}.toc-item.depth-3 .toc-link{padding-left:16px}.toc-text{opacity:.3;padding:0 8px;transition:opacity .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1);display:block}.toc-link:hover{color:var(--blog-ink)}.toc-link:hover .toc-text{opacity:.7}.toc-link.active{color:var(--blog-ink)}.toc-link.active .toc-text{opacity:1}@media (prefers-reduced-motion:reduce){.toc-sliding-pill,.toc-progress-fill,.toc-text,.toc-link{transition:none}}.toc-topbar{display:none}@media (width<=1279px){.toc-topbar:not([hidden]){display:block}}.toc-topbar{z-index:55;opacity:0;pointer-events:none;padding-bottom:40px;transition:opacity .25s,transform .32s cubic-bezier(.32,.72,0,1);position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.toc-topbar.is-visible{opacity:1;transform:translateY(0)}.toc-topbar__fade{pointer-events:none;background:linear-gradient(to bottom, hsl(var(--background) / .55), hsl(var(--background) / .28));-webkit-backdrop-filter:blur(22px)saturate(1.7);position:absolute;inset:0;mask-image:linear-gradient(#000 calc(100% - 44px),#0000)}.toc-topbar__bar{pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;height:52px;padding:0 16px;display:grid;position:relative}.toc-topbar__logo,.toc-topbar__title,.toc-topbar__totop{pointer-events:auto}.toc-topbar__logo{flex:none;justify-self:start;width:30px;height:30px;transition:opacity .15s;display:inline-flex}.toc-topbar__logo:hover{opacity:.65}.toc-topbar__logo img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.dark .toc-topbar__logo img{filter:invert()}.toc-logo-ghost{z-index:56;opacity:0;pointer-events:none;transform-origin:0 0;will-change:transform;position:fixed;top:0;left:0}.toc-logo-ghost img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%;display:block}.dark .toc-logo-ghost img{filter:invert()}.toc-topbar.logo-handoff .toc-topbar__logo img{opacity:0}.toc-title-ghost{z-index:56;opacity:0;max-width:92vw;color:var(--blog-ink);white-space:nowrap;pointer-events:none;transform-origin:0 0;will-change:transform, opacity;margin:0;position:fixed;top:0;left:0}@media (prefers-reduced-motion:reduce){.toc-logo-ghost,.toc-title-ghost{display:none}}.toc-topbar__title{min-width:0;max-width:min(70vw,360px);font:inherit;color:var(--blog-ink);cursor:pointer;background:0 0;border:0;justify-self:center;align-items:center;gap:5px;margin:0;padding:6px 4px;font-size:14px;font-weight:500;transition:color .15s;display:inline-flex}.toc-topbar--static .toc-topbar__chevron{display:none}.toc-topbar--static .toc-topbar__title{cursor:default;pointer-events:none}.toc-topbar__title-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toc-topbar__chevron{width:15px;height:15px;color:var(--blog-faint);flex:none;transition:transform .2s}.toc-topbar.menu-open .toc-topbar__chevron{transform:rotate(180deg)}.toc-topbar__totop{width:30px;height:30px;color:var(--blog-faint);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;justify-self:end;align-items:center;margin:0;padding:0;transition:color .15s,scale .12s;display:inline-flex}.toc-topbar__totop:hover{color:var(--blog-ink)}.toc-topbar__totop:active{scale:.92}.toc-topbar__totop svg{width:18px;height:18px}.toc-topbar__menu{pointer-events:auto;opacity:0;max-height:0;padding:0 8px;transition:max-height .3s cubic-bezier(.32,.72,0,1),padding .3s cubic-bezier(.32,.72,0,1),opacity .2s;position:relative;overflow:hidden}.toc-topbar.menu-open .toc-topbar__menu{opacity:1;max-height:min(60vh,460px);padding:2px 8px 6px;overflow-y:auto}.toc-topbar__list{flex-direction:column;align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.toc-topbar__item.depth-3 .toc-topbar__link{opacity:.8;font-size:13px}.toc-topbar__link{text-align:center;max-width:100%;color:var(--blog-faint);border-radius:12px;padding:7px 12px;font-size:14px;line-height:1.35;transition:color .15s,background .15s;display:inline-block}.toc-topbar__link:hover{color:var(--blog-ink)}.toc-topbar__link.active{color:var(--blog-accent);background:color-mix(in srgb, var(--blog-accent) 12%, transparent);font-weight:600}@media (width<=1279px){body:has(.toc-topbar:not([hidden])) .blog-totop{display:none}}@media (prefers-reduced-motion:reduce){.toc-topbar,.toc-topbar__menu,.toc-topbar__chevron,.toc-topbar__totop{transition:none}}.blog-totop{border:1px solid var(--blog-line);background:hsl(var(--background));width:40px;height:40px;color:var(--blog-faint);cursor:pointer;opacity:0;box-shadow:0 4px 12px hsl(var(--foreground) / .08), 0 1px 3px hsl(var(--foreground) / .06);border-radius:999px;justify-content:center;align-items:center;transition:opacity .2s,transform .2s,color .15s,scale .12s;display:inline-flex;position:fixed;bottom:24px;right:24px;transform:translateY(8px)}.blog-totop.is-visible{opacity:1;transform:translateY(0)}.blog-totop:hover{color:var(--blog-ink)}.blog-totop:active{scale:.96}@media (prefers-reduced-motion:reduce){.blog-theme-toggle:active,.blog-search-trigger:active,.blog-totop:active{scale:1}}.blog-totop svg{width:18px;height:18px}.blog-lightbox{z-index:60;background:hsl(var(--background) / .92);opacity:0;pointer-events:none;cursor:zoom-out;justify-content:center;align-items:center;padding:5vmin;transition:opacity .2s;display:flex;position:fixed;inset:0}.blog-lightbox.is-open{opacity:1;pointer-events:auto}.blog-lightbox img{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--blog-img-edge);border-radius:12px}.blog-zone .footer{margin-top:72px}.tags-page-header{margin:8px 0 56px}.tags-page-label{letter-spacing:.14em;text-transform:uppercase;color:var(--blog-faint);margin-bottom:14px;font-size:12px;font-weight:500;display:inline-block}.tags-page-title{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--blog-ink);margin:0 0 14px;font-size:46px;font-weight:600;line-height:1.1}.tags-page-description{max-width:34rem;color:var(--blog-muted);margin:0;font-size:16px;line-height:1.55}.tag-index__empty{color:var(--blog-faint)}@media (width<=767px){.blog-shell:has(.tag-marquee) .blog-topbar{margin-bottom:28px}.tags-page-header{margin:0 0 24px}.tags-page-title{font-size:34px}}.tag-marquee{flex-direction:column;gap:16px;margin-top:8px;display:flex}.tag-marquee__track{flex-direction:column;gap:16px;display:flex}.tag-marquee__track>.tag-card{width:100%;max-width:560px;margin-inline:auto}html.tags-pinned,html.tags-pinned body{height:100%;overflow:hidden}.tags-pinned .blog-shell{flex-direction:column;height:100svh;padding-bottom:24px;display:flex}.tags-pinned .tags-page-header{margin:0 0 20px}.tags-pinned .tag-marquee{flex:1;justify-content:center;gap:24px;width:100vw;min-height:0;margin-inline:calc(50% - 50vw);overflow:hidden}.tags-pinned .tag-marquee__row{flex:1 1 0;min-height:0;max-height:460px;overflow:hidden}.tags-pinned .tag-marquee__track{will-change:transform;flex-direction:row;align-items:stretch;gap:24px;width:max-content;height:100%}.tags-pinned .tag-marquee__track>.tag-card{flex:0 0 360px;width:360px;max-width:none;height:100%;min-height:0;margin-inline:0}.tags-pinned .tag-card:not(.has-image){flex-direction:column;display:flex}.tags-pinned .tag-card:not(.has-image) .tag-card-posts{margin-top:auto}.tag-card{--tag-accent:var(--blog-accent);--tag-color:var(--tag-accent);--row-h:46px;--tag-pad-x:24px;background:color-mix(in oklab, hsl(var(--foreground)) 4%, hsl(var(--background)));border:1px solid var(--blog-line);border-radius:20px;transition:border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.tag-card:hover{border-color:var(--tag-color);box-shadow:0 10px 34px hsl(var(--foreground) / .09)}.dark .tag-card{background:hsl(var(--foreground) / .04);border-color:hsl(var(--foreground) / .08)}.dark .tag-card:hover{box-shadow:0 10px 34px #0000004d}.tag-card.has-accent:not(.has-image){border-color:color-mix(in srgb, var(--tag-color) 25%, var(--blog-line))}.tag-card.has-accent:not(.has-image):hover{border-color:var(--tag-color);box-shadow:0 12px 40px color-mix(in srgb, var(--tag-color) 15%, transparent)}.tag-card-link{padding:var(--tag-pad-x);color:inherit;display:block}.tag-card-header{align-items:center;gap:16px;margin-bottom:14px;display:flex}.tag-card-icon{background:linear-gradient(135deg, color-mix(in srgb, var(--tag-color) 15%, hsl(var(--background))), color-mix(in srgb, var(--tag-color) 8%, hsl(var(--background))));border:1px solid color-mix(in srgb, var(--tag-color) 20%, transparent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.tag-card-icon svg{width:24px;height:24px;color:var(--tag-color)}.tag-card-info{flex:1;min-width:0}.tag-card-name{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--blog-ink);margin:0 0 2px;font-size:19px;font-weight:650;line-height:1.3;transition:color .2s}.tag-card:not(.has-image):hover .tag-card-name{color:var(--tag-color)}.tag-card-count{color:var(--blog-muted);font-size:13px;font-weight:500}.tag-card-description{color:var(--blog-muted);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.tag-card-posts{border-top:1px solid var(--blog-line);position:relative}.tag-card-posts.is-scrollable .tag-posts-scroll{max-height:calc(var(--row-h) * 2.5);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--tag-color) 30%, transparent) transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;overflow-y:auto}.tag-card-posts.is-scrollable .tag-posts-scroll::-webkit-scrollbar{width:4px}.tag-card-posts.is-scrollable .tag-posts-scroll::-webkit-scrollbar-track{background:0 0}.tag-card-posts.is-scrollable .tag-posts-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--tag-color) 30%, transparent);border-radius:2px}.tag-card-posts.is-scrollable .tag-posts-scroll::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--tag-color) 50%, transparent)}.tag-card:not(.has-image) .tag-card-posts.is-scrollable:after{content:"";background:linear-gradient(to bottom, transparent, color-mix(in oklab, hsl(var(--foreground)) 4%, hsl(var(--background))));pointer-events:none;z-index:2;height:24px;position:absolute;bottom:0;left:0;right:0}.tag-post-preview{height:var(--row-h);box-sizing:border-box;padding:0 var(--tag-pad-x);color:inherit;border-bottom:1px solid var(--blog-line);justify-content:space-between;align-items:center;gap:12px;transition:background .15s;display:flex}.tag-post-preview:last-child{border-bottom:none}.tag-post-preview:hover{background:color-mix(in srgb, var(--tag-color) 5%, transparent)}.tag-post-preview:hover .tag-post-title{color:var(--tag-color)}.tag-post-title{min-width:0;color:var(--blog-body);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:500;line-height:1.4;transition:color .15s;overflow:hidden}.tag-post-date{color:var(--blog-faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.tag-card.has-image{--image-color:var(--tag-image-color,hsl(var(--foreground) / .15));background:color-mix(in oklab, hsl(var(--foreground)) 8%, hsl(var(--background)));border-color:#0000;min-height:360px}.dark .tag-card.has-image{background:hsl(var(--foreground) / .06)}.tag-card.has-image:hover{border-color:color-mix(in srgb, var(--image-color) 50%, transparent);box-shadow:0 8px 24px color-mix(in srgb, var(--image-color) 25%, #0000001a)}.tag-card-bg{z-index:1;color:inherit;display:block;position:absolute;inset:0}.tag-card-bg>img{z-index:1;-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:filter .3s;position:absolute;inset:0}.tag-card.has-image:hover .tag-card-bg>img{filter:brightness(1.06)saturate(1.05)}.tag-card-bg.has-lqip:before{content:"";z-index:0;background:var(--tag-lqip) center / cover no-repeat;filter:blur(14px);position:absolute;inset:0;transform:scale(1.1)}.js .tag-card.has-image .tag-card-bg>img{opacity:0;transition:opacity .6s}.js .tag-card.has-image .tag-card-bg.is-loaded>img{opacity:1}.js .tag-card.has-image .tag-card-bg.is-loaded.has-lqip:before{opacity:0;transition:opacity .6s .1s}.tag-card-bg:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#0000001a 0%,#0000008c 100%);position:absolute;inset:0}.tag-card.has-image .tag-card-header{top:var(--tag-pad-x);left:var(--tag-pad-x);z-index:3;margin-bottom:0;position:absolute}.tag-card.has-image .tag-card-name{color:#fff;text-shadow:0 1px 3px #0006;font-size:22px;font-weight:700}.tag-card.has-image .tag-card-count{color:#ffffffe6;text-shadow:0 1px 2px #0000004d}.tag-card.has-image .tag-card-posts{z-index:3;-webkit-backdrop-filter:blur(24px)saturate(180%)brightness(1.1);background:#00000026;border-top:none;position:absolute;inset:auto 0 0;box-shadow:inset 0 .5px #ffffff4d}.dark .tag-card.has-image .tag-card-posts{background:#00000040;box-shadow:inset 0 .5px #ffffff26}.tag-card.has-image .tag-card-posts.is-scrollable .tag-posts-scroll{scrollbar-color:#ffffff4d transparent}.tag-card.has-image .tag-card-posts.is-scrollable .tag-posts-scroll::-webkit-scrollbar-thumb{background:#ffffff4d}.tag-card.has-image .tag-post-preview{border-bottom-color:#ffffff26}.tag-card.has-image .tag-post-preview:hover{background:#ffffff1a}.tag-card.has-image .tag-post-title{color:#fffffff2;text-shadow:0 1px 2px #0000004d}.tag-card.has-image .tag-post-preview:hover .tag-post-title{color:#fff}.tag-card.has-image .tag-post-date{color:#ffffffb3;text-shadow:0 1px 2px #0000004d}@media (width<=767px){.tag-card{--tag-pad-x:18px}.tag-card.has-image .tag-card-name{font-size:20px}.tag-post-title{font-size:15px}}@media (prefers-reduced-motion:reduce){.tag-card,.tag-card-bg>img{transition:none}.tag-card:hover{transform:none}.tags-pinned .tag-marquee__track{transform:none!important}}.tag-index__back{color:var(--blog-faint);font-size:13px;transition:color .16s;display:inline-flex}.tag-index__back:hover{color:var(--blog-ink)}.tag-archive__head{margin-bottom:48px}.tag-archive__title{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--blog-ink);margin-top:18px;font-size:40px;font-weight:600;line-height:1.1}.tag-archive__hash{color:color-mix(in oklab, var(--tag-accent) 80%, var(--blog-faint))}.tag-archive__desc{max-width:60ch;color:var(--blog-muted);margin-top:14px;font-size:16px;line-height:25px}.tag-archive__count{font-variant-numeric:tabular-nums;color:var(--blog-faint);margin-top:16px;font-size:13px}@media (prefers-reduced-motion:reduce){.tag-card,.tag-card__enter,.tag-deck__pill,.tag-deck__pill-active{transition:none}.tag-card:active{transform:none}.tag-deck__track{scroll-snap-type:none}}.blog-search-trigger{width:34px;height:34px;color:var(--blog-faint);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,background .15s,scale .12s;display:inline-flex;position:relative}.blog-search-trigger:before{content:"";position:absolute;inset:-3px}.blog-search-trigger:hover{color:var(--blog-ink);background:hsl(var(--foreground) / .05)}.blog-search-trigger:active{scale:.96}@media (prefers-reduced-motion:reduce){.blog-search-trigger:active{scale:1}}.blog-search-trigger svg{width:18px;height:18px}.blog-search{margin-top:12vh;border:1px solid var(--blog-line);background:hsl(var(--background));width:min(640px,100vw - 32px);max-height:min(70vh,640px);color:var(--blog-ink);border-radius:16px;outline:none;margin-inline:auto;padding:0;overflow:hidden;box-shadow:0 24px 64px -20px #00000080}.blog-search::backdrop{backdrop-filter:blur(2px);background:#0000006b}.blog-search__panel{padding:14px}.blog-search__fallback{color:var(--blog-muted);margin:8px 4px 4px;font-size:14px}.blog-search #blog-search-ui{--pagefind-ui-scale:.9;--pagefind-ui-primary:var(--blog-ink);--pagefind-ui-text:var(--blog-body);--pagefind-ui-background:hsl(var(--background));--pagefind-ui-border:var(--blog-line);--pagefind-ui-tag:var(--blog-fill);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:10px;--pagefind-ui-font:inherit}.blog-search #blog-search-ui mark{background:color-mix(in srgb, var(--blog-ji) 26%, transparent);color:inherit;border-radius:3px}
