:root{--color-text:#1a1a1a;--color-page-bg:oklch(99.5% .004 235);--color-surface:#fff;--color-link:#576068;--color-link-strong:#3d474f;--color-link-hover:#c00;--color-frame:#4682b4;--color-frame-text:#3d5668;--color-surface-hover:oklch(94% .016 235);--color-surface-muted:oklch(96% .01 235);--color-text-muted:#595959;--color-text-muted-strong:#454545;--color-text-meta:#595959;--color-text-meta-strong:#454545;--color-skeleton-mid:oklch(80% .01 235);--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:48px;--container-max:800px;--font-body:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.563rem;--text-2xl:clamp(1.5rem, 2.5vw + .75rem, 1.953rem);--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.65;--leading-relaxed:1.75;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--transition-list:background .2s ease-out}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--color-text:oklch(92% .008 235);--color-page-bg:oklch(17% .012 235);--color-surface:oklch(22% .014 235);--color-link:oklch(72% .02 235);--color-link-strong:oklch(88% .01 235);--color-link-hover:#f55;--color-frame:oklch(62% .09 235);--color-frame-text:oklch(74% .06 235);--color-surface-hover:oklch(26% .018 235);--color-surface-muted:oklch(24% .015 235);--color-text-muted:oklch(68% .012 235);--color-text-muted-strong:oklch(78% .01 235);--color-text-meta:oklch(65% .012 235);--color-text-meta-strong:oklch(76% .01 235);--color-skeleton-mid:oklch(32% .012 235)}}body{color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);font-kerning:normal;text-rendering:optimizelegibility;background:var(--color-page-bg);margin:0}time{font-variant-numeric:tabular-nums}a{color:var(--color-link);text-decoration:none;transition:color .2s ease-out}a:hover{color:var(--color-link-hover)}a:focus-visible{color:var(--color-link-hover);outline:2px solid var(--color-frame);outline-offset:2px}.page{min-height:100vh;position:relative}.skip-link{inset-inline-start:var(--space-xs);top:var(--space-xs);z-index:1;padding:var(--space-xs) var(--space-sm);background:var(--color-page-bg);color:var(--color-link-strong);border:2px solid var(--color-frame);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;transition:transform .2s ease-out;position:absolute;transform:translateY(-200%)}.skip-link:focus{outline:none;transform:translateY(0)}.skip-link:focus-visible{color:var(--color-link-hover)}.page-inner{min-height:100vh;padding:var(--space-xs) 0;justify-content:center;align-items:flex-start;display:flex}.container{margin:var(--space-xs);padding:var(--space-xs);border:dashed var(--color-frame) 4px;background:var(--color-page-bg);flex-direction:column;width:100%;display:flex}@media (width>=800px){.container{width:var(--container-max)}}header{margin-bottom:var(--space-sm)}nav{width:100%}.nav-list{gap:0 var(--space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.nav-list li{margin:0}.nav-list a{padding:var(--space-xs);min-height:44px;line-height:28px;font-size:var(--text-base);font-weight:var(--weight-regular);display:inline-block}.nav-list a:not(.nav-brand):after{content:attr(data-label);visibility:hidden;height:0;font-weight:var(--weight-semibold);pointer-events:none;user-select:none;display:block;overflow:hidden}.nav-brand{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:-.01em}.nav-list li:first-of-type{flex-grow:1}.nav-list a[aria-current=page]{color:var(--color-link-hover);font-weight:var(--weight-semibold)}main{padding:var(--space-xs);width:100%}.page-header{margin-bottom:var(--space-md)}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere;margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-content{gap:var(--space-sm);flex-direction:column;display:flex}footer{margin-top:var(--space-sm);padding:var(--space-xs);font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--color-text-meta);justify-content:flex-end;display:flex}.text-center{text-align:center}.text-lead{font-size:var(--text-lg);line-height:var(--leading-relaxed)}.text-center p{margin:0;text-wrap:pretty;max-width:65ch;margin-inline:auto}.list-plain{margin:0;padding:0;list-style:none}.list-item{align-items:flex-start;gap:var(--space-sm);padding:var(--space-xs) 0;min-height:44px;transition:var(--transition-list);display:flex}.list-item:hover,.list-item:focus-within{background:var(--color-surface-hover)}.list-item:hover a,.list-item:focus-within a{color:var(--color-link-strong)}.list-item:hover a:hover,.list-item:focus-within a:hover,.list-item:hover a:focus-visible,.list-item:focus-within a:focus-visible{color:var(--color-link-hover)}.list-item:hover .list-item-description,.list-item:focus-within .list-item-description{color:var(--color-text-muted-strong)}.list-item:hover .list-item-meta,.list-item:focus-within .list-item-meta{color:var(--color-text-meta-strong)}.list-item-meta .list-item-type,.list-item:hover .list-item-meta .list-item-type,.list-item:focus-within .list-item-meta .list-item-type{color:var(--color-frame-text)}.list-item a{flex-grow:1;min-width:0;padding-block:.125rem}.list-item-title{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere;margin:0;display:block}.list-item-description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-snug);margin:.2rem 0 0}.list-item-stats{min-height:calc(var(--text-sm) * var(--leading-tight));font-size:var(--text-sm);color:var(--color-text-meta);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;display:inline-flex}.list-item-meta{font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--color-text-meta);flex-shrink:0}.list-item-meta--stacked{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.list-item-meta--stacked .list-item-stats{justify-content:flex-end}.list-item-meta .list-item-type{flex-shrink:0}.list-item-stat{align-items:center;gap:.3rem;display:inline-flex}.list-item-stat-icon{opacity:.88;flex-shrink:0}iconify-icon.list-item-stat-icon{width:14px;height:14px;display:inline-block}.list-item-stat-value{line-height:1}.list-item-stat--skeleton .list-item-stat-icon,.list-item-stat--skeleton .list-item-stat-value{background:var(--color-surface-muted);border-radius:2px;animation:1.4s ease-in-out infinite stat-skeleton-pulse;display:block}.list-item-stat--skeleton .list-item-stat-icon{width:14px;height:14px}.list-item-stat--skeleton .list-item-stat-value{width:2.75rem;height:.6875rem}@keyframes stat-skeleton-pulse{0%,to{opacity:.45}50%{opacity:.8}}.list-item:hover .list-item-stats,.list-item:focus-within .list-item-stats{color:var(--color-text-meta-strong)}@media (width<=479px){.list-item{flex-direction:column;gap:.25rem}.list-item-meta--stacked{align-self:flex-start;align-items:flex-start}}.list-item-link{flex-grow:1;min-width:0}.bookmark-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.bookmark-row{min-width:0;margin:0}.bookmark-row-inner{min-height:44px;padding:.35rem var(--space-xs);transition:var(--transition-list);align-items:center;gap:.65rem;display:flex}.bookmark-row-inner:hover,.bookmark-row-inner:focus-within{background:var(--color-surface-hover)}.bookmark-row-inner:hover .bookmark-row-desc,.bookmark-row-inner:focus-within .bookmark-row-desc{color:var(--color-text-muted-strong)}.bookmark-row-inner:hover .bookmark-row-meta-value,.bookmark-row-inner:focus-within .bookmark-row-meta-value{color:var(--color-text-meta-strong)}.bookmark-row-name{text-overflow:ellipsis;min-width:0;max-width:min(20rem,40%);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-link-strong);white-space:nowrap;flex:0 auto;overflow:hidden}.bookmark-row-name--link{color:var(--color-link);text-decoration:none}.bookmark-row-name--link:hover{color:var(--color-link-hover)}.bookmark-row-name--link:focus-visible{outline:2px solid var(--color-frame);outline-offset:2px}.bookmark-row-desc-wrap{flex:1;min-width:0;position:relative}.bookmark-row-desc-wrap summary{list-style:none}.bookmark-row-desc-wrap--truncated summary{cursor:pointer}.bookmark-row-desc-wrap--full summary,.bookmark-row-desc-wrap--pending summary{cursor:default;pointer-events:none}.bookmark-row-desc-wrap summary::-webkit-details-marker{display:none}.bookmark-row-desc{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text-muted);display:block;overflow:hidden}.bookmark-row-desc-popover{z-index:5;border:1px solid var(--color-frame);background-color:var(--color-surface);width:max-content;max-width:min(20rem,70vw);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text-muted);white-space:normal;padding:.45rem .55rem;display:none;position:absolute;bottom:calc(100% + .35rem);left:0}.bookmark-row-desc-wrap--truncated[open] .bookmark-row-desc-popover{display:block}.bookmark-row-desc-wrap--full .bookmark-row-desc-popover,.bookmark-row-desc-wrap--pending .bookmark-row-desc-popover{display:none}.bookmark-row-meta{flex-shrink:0;align-items:center;gap:.5rem;margin-left:auto;display:inline-flex;position:relative}.bookmark-row-meta-value{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.bookmark-row-category,.bookmark-row-meta--expiry>summary.bookmark-row-meta-value{min-height:44px;font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-link);cursor:pointer;white-space:nowrap;text-decoration:underline;text-decoration-color:color-mix(in oklch, var(--color-link) 40%, transparent);text-underline-offset:.18em;font-variant-numeric:tabular-nums;background-color:#0000;border:none;border-radius:0;align-items:center;padding:.15rem 0;display:inline-flex}.bookmark-row-category:hover,.bookmark-row-category:focus-visible,.bookmark-row-meta--expiry>summary.bookmark-row-meta-value:hover,.bookmark-row-meta--expiry>summary.bookmark-row-meta-value:focus-visible{color:var(--color-link-hover);background-color:#0000;text-decoration-color:currentColor}.bookmark-row-category:focus-visible,.bookmark-row-meta--expiry>summary.bookmark-row-meta-value:focus-visible{outline:2px solid var(--color-frame);outline-offset:2px}.bookmark-row-inner:hover .bookmark-row-category,.bookmark-row-inner:focus-within .bookmark-row-category,.bookmark-row-inner:hover .bookmark-row-meta--expiry>summary.bookmark-row-meta-value,.bookmark-row-inner:focus-within .bookmark-row-meta--expiry>summary.bookmark-row-meta-value{color:var(--color-link)}.bookmark-row-inner:hover .bookmark-row-category:hover,.bookmark-row-inner:focus-within .bookmark-row-category:focus-visible,.bookmark-row-inner:hover .bookmark-row-meta--expiry>summary.bookmark-row-meta-value:hover,.bookmark-row-inner:focus-within .bookmark-row-meta--expiry>summary.bookmark-row-meta-value:focus-visible{color:var(--color-link-hover)}.bookmark-row--github .bookmark-row-meta{justify-content:flex-end}.bookmark-row-meta--categories{gap:.65rem}.bookmark-row-category-details{position:relative}.bookmark-row-category-details summary{list-style:none}.bookmark-row-category-details summary::-webkit-details-marker{display:none}.bookmark-row-meta--expiry{border:none}.bookmark-row-meta--expiry summary{cursor:pointer;list-style:none}.bookmark-row-meta--expiry summary::-webkit-details-marker{display:none}.bookmark-row-meta--expiry[open] .bookmark-row-popover,.bookmark-row-category-details[open] .bookmark-row-popover{opacity:1;pointer-events:auto}.bookmark-row-popover{z-index:6;border:1px solid var(--color-frame);background-color:var(--color-surface);opacity:0;pointer-events:none;isolation:isolate;flex-direction:column;gap:.25rem;width:max-content;min-width:min(18rem,70vw);max-width:min(24rem,85vw);max-height:min(16rem,50vh);padding:.45rem .55rem;transition:opacity .15s;display:flex;position:absolute;top:calc(100% + .35rem);right:0;overflow:auto}.bookmark-row-meta--expiry .bookmark-row-popover{right:0}.bookmark-row.is-loading .bookmark-row-meta-value{color:#0000;background:linear-gradient(90deg, var(--color-text-muted) 0%, var(--color-skeleton-mid) 50%, var(--color-text-muted) 100%);opacity:.25;background-size:200% 100%;border-radius:2px;min-width:4.5rem;min-height:1em;animation:1.4s ease-in-out infinite stat-skeleton-pulse;display:inline-block}.bookmark-hover-panel-meta{font-size:var(--text-xs);color:var(--color-text-meta);margin:0 0 .35rem}.bookmark-hover-panel-summary{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text);margin:0 0 .5rem}.bookmark-hover-panel-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.bookmark-hover-row{min-width:0;display:block}.bookmark-hover-row-content{flex-direction:column;gap:.1rem;min-width:0;display:flex}.bookmark-hover-row--with-image .bookmark-hover-row-content{flex-direction:row;align-items:flex-start;gap:.5rem}.bookmark-hover-row-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.bookmark-hover-row-thumb{object-fit:cover;border:1px solid var(--color-frame);background:var(--color-surface-muted);flex-shrink:0;width:2.5rem;height:2.5rem}.bookmark-hover-row-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere;color:var(--color-link-strong);text-decoration:none}.bookmark-hover-row-name:hover{color:var(--color-link-hover)}.bookmark-hover-row-desc{font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-text-meta);overflow-wrap:anywhere}.bookmark-hover-row-expiry{font-size:var(--text-xs);line-height:var(--leading-tight);color:var(--color-frame-text);font-variant-numeric:tabular-nums;white-space:nowrap}.bookmark-row-meta-fallback{font-size:var(--text-xs);color:var(--color-text-meta);flex-shrink:0;margin-left:auto}@media (width<=560px){.bookmark-row-inner{flex-wrap:wrap;row-gap:.25rem}.bookmark-row-name{max-width:100%}.bookmark-row-desc-wrap{flex:100%;order:3}.bookmark-row-meta{flex:100%;justify-content:flex-start;margin-left:0}.bookmark-row-meta--categories{flex-wrap:wrap}.bookmark-row-popover{min-width:min(100%,18rem);left:0;right:auto}}.empty-state{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.post-nav{margin-top:calc(var(--text-base) * var(--leading-normal));font-size:var(--text-sm);font-weight:var(--weight-medium);justify-content:space-between;gap:1rem;display:flex}.post-header h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere;margin:0}.post-header{margin-bottom:var(--space-sm)}.post-meta{font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--color-text-meta);flex-wrap:wrap;gap:.25rem 1rem;margin:.375rem 0 1rem;display:flex}.about-grid{gap:var(--space-md);flex-wrap:wrap;display:flex}.about-grid>section{flex:240px;min-width:0}.about-grid h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);text-wrap:balance;margin:0 0 .5rem}.about-grid p{text-wrap:pretty;max-width:65ch;margin:0 0 .75rem}.about-grid p:last-child{margin-bottom:0}.friends-list{margin:0;padding:0;list-style:none}.friends-list .list-item{align-items:center}article{max-width:65ch;font-size:var(--text-base);line-height:var(--leading-relaxed)}article,article,article,article{text-wrap:balance;color:var(--color-text)}article{margin:calc(var(--text-base) * var(--leading-relaxed)) 0 .75rem;font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:.01em;margin:1rem 0 .375rem}article,article{text-wrap:pretty}article{margin:0 0 1rem}article,article{margin:0 0 1rem;padding-left:1.5rem}article{text-underline-offset:.15em;padding:var(--space-xs);background:var(--color-surface-muted);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-snug);font-family:var(--font-mono);font-variant-ligatures:none;font-size:.9em;font-size:inherit;max-width:100%;height:auto;padding:var(--space-xs) var(--space-sm);background:var(--color-surface-muted);color:var(--color-text-muted-strong);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0 0 1rem;text-decoration:underline;overflow-x:auto}.not-found p{margin:0 0 var(--space-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skip-link{transition:none}.list-item-stat--skeleton .list-item-stat-icon,.list-item-stat--skeleton .list-item-stat-value{opacity:.55;animation:none}.bookmark-row.is-loading .bookmark-row-meta-value{opacity:.55;color:#0000;animation:none}}
