.home .blog-head{padding-block:var(--sp-5) var(--sp-4)}.home .blog-head__label{font-family:var(--f-mono);font-size:var(--s-0);text-transform:uppercase;letter-spacing:.18em;color:var(--c-signal);margin:0 0 var(--sp-2)}.home .blog-head h1{font-family:var(--f-display);font-weight:700;font-size:clamp(2.2rem,6vw,3.2rem);letter-spacing:-.02em;line-height:1.02;margin:0 0 var(--sp-2);color:var(--c-ink)}.home .blog-head p{color:var(--c-ink-dim);max-width:60ch;margin:0}.home .post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-line)}.home .post-list__item{border-bottom:1px solid var(--c-line)}.home .post-list__link{position:relative;display:grid;grid-template-columns:9rem 1fr;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-3) 0;text-decoration:none;color:inherit;border-radius:var(--radius);transition:padding-left .25s cubic-bezier(.2,.7,.2,1),background .25s ease}.home .post-list__link:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:2px;background:var(--c-signal);transform:scaleY(0);transform-origin:center;transition:transform .25s ease}.home .post-list__link:hover,.home .post-list__link:focus-visible{padding-left:var(--sp-3);background:color-mix(in srgb,var(--c-surface) 55%,transparent)}.home .post-list__link:hover:before,.home .post-list__link:focus-visible:before{transform:scaleY(1)}.home .post-list__link:hover .post-list__title,.home .post-list__link:focus-visible .post-list__title{color:var(--c-signal)}.home .post-list__title:after{content:" →";opacity:0;margin-left:.1rem;transition:opacity .2s ease,margin-left .2s ease}.home .post-list__link:hover .post-list__title:after,.home .post-list__link:focus-visible .post-list__title:after{opacity:1;margin-left:.35rem}.home .post-list__meta{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.04em;color:var(--c-ink-faint);display:flex;flex-direction:column;gap:.25rem;padding-top:.35rem}.home .post-list__title{font-family:var(--f-display);font-size:var(--s-3);line-height:1.2;margin:0 0 .4rem;color:var(--c-ink);transition:color .15s ease}.home .post-list__excerpt{color:var(--c-ink-dim);margin:0 0 .7rem;max-width:62ch}.home .tag-row{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}.home .tag{font-family:var(--f-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-faint);border:1px solid var(--c-line);border-radius:5px;padding:.14rem .5rem;text-decoration:none}.home .tag{transition:color .18s ease,border-color .18s ease,background .18s ease}.home a.tag:hover,.home a.tag:focus-visible{color:var(--c-signal-ink);background:var(--c-signal);border-color:var(--c-signal)}.home .blog-empty{color:var(--c-ink-dim);padding:var(--sp-3) 0}.home .index-label{font-family:var(--f-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--c-signal);margin:0 0 .7rem}.home .series-index{margin-bottom:var(--sp-4)}.home .series-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}.home .series-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.85rem 1rem;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);text-decoration:none;transition:border-color .2s ease,transform .2s ease}.home .series-card:hover{border-color:var(--c-signal);transform:translateY(-2px)}.home .series-card__name{font-family:var(--f-display);color:var(--c-ink);font-size:1.02rem}.home .series-card__count{font-family:var(--f-mono);font-size:.72rem;color:var(--c-signal);white-space:nowrap}.home .tag-index{margin-bottom:var(--sp-4)}.home .tag-index__row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.home .tag--count{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:.74rem;text-transform:none;letter-spacing:0}.home .tag__n{font-size:.66rem;color:var(--c-ink-faint);background:color-mix(in srgb,var(--c-line) 60%,transparent);border-radius:4px;padding:0 .32rem}.home a.tag--count:hover .tag__n{color:var(--c-signal-ink);background:color-mix(in srgb,var(--c-signal-ink) 18%,transparent)}.home .series-thread{list-style:none;margin:0;padding:0}.home .series-thread__item{border-left:2px solid var(--c-line)}.home .series-thread__link{display:grid;grid-template-columns:3rem 1fr;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2);text-decoration:none;color:inherit;position:relative;transition:background .2s ease}.home .series-thread__link:before{content:"";position:absolute;left:-7px;top:var(--sp-3);width:12px;height:12px;border-radius:50%;background:var(--c-bg);border:2px solid var(--c-signal)}.home .series-thread__link:hover{background:color-mix(in srgb,var(--c-surface) 55%,transparent)}.home .series-thread__num{font-family:var(--f-mono);font-size:.9rem;color:var(--c-signal)}.home .series-thread__body{display:flex;flex-direction:column;gap:.25rem}.home .series-thread__title{font-family:var(--f-display);font-size:var(--s-3);color:var(--c-ink)}.home .series-thread__link:hover .series-thread__title{color:var(--c-signal)}.home .series-thread__meta{font-family:var(--f-mono);font-size:.74rem;color:var(--c-ink-faint)}.home .series-thread__excerpt{color:var(--c-ink-dim);max-width:62ch}.home .post__series{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-2);text-decoration:none}.home .post__series-badge{font-family:var(--f-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--c-signal-ink);background:var(--c-signal);padding:.2rem .55rem;border-radius:5px}.home .post__series-name{font-family:var(--f-mono);font-size:.8rem;color:var(--c-ink-dim)}.home .post__series:hover .post__series-name{color:var(--c-signal)}.home .post{--post-measure: 68ch;padding-block:var(--sp-4) var(--sp-5)}.home .post__back{display:inline-block;font-family:var(--f-mono);font-size:var(--s-0);color:var(--c-ink-dim);text-decoration:none;margin-bottom:var(--sp-3)}.home .post__back:hover{color:var(--c-signal)}.home .post__header{max-width:var(--post-measure);margin-bottom:var(--sp-4)}.home .post__meta{font-family:var(--f-mono);font-size:var(--s-0);letter-spacing:.04em;color:var(--c-ink-faint);display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:0 0 var(--sp-2)}.home .post__meta .dot{color:var(--c-line)}.home .post__header h1{font-family:var(--f-display);font-weight:700;font-size:clamp(2.1rem,5.5vw,3rem);line-height:1.06;letter-spacing:-.02em;margin:0 0 var(--sp-2);color:var(--c-ink)}.home .post__summary{font-size:1.2rem;color:var(--c-ink-dim);margin:0 0 var(--sp-2)}.home .post__draft{font-family:var(--f-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--c-signal-ink);background:var(--c-signal);padding:.2rem .6rem;border-radius:5px;display:inline-block;margin-bottom:var(--sp-2)}.home .post__body{max-width:var(--post-measure)}.home .post__nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);margin-top:var(--sp-5);padding-top:var(--sp-3);border-top:1px solid var(--c-line);max-width:var(--post-measure)}.home .post__nav a{display:flex;flex-direction:column;gap:.3rem;padding:var(--sp-2);border:1px solid var(--c-line);border-radius:var(--radius);text-decoration:none;color:var(--c-ink)}.home .post__nav a:hover{border-color:var(--c-signal)}.home .post__nav a.is-next{text-align:right;align-items:flex-end}.home .post__nav-dir{font-family:var(--f-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--c-ink-faint)}.home .reading-progress{position:fixed;inset:0 0 auto;height:3px;background:color-mix(in srgb,var(--c-line) 50%,transparent);z-index:400}.home .reading-progress__bar{display:block;width:100%;height:100%;background:var(--c-signal);box-shadow:0 0 10px var(--c-signal);transform-origin:left center;transform:scaleX(0);transition:transform .08s linear}@media(prefers-reduced-motion:reduce){.home .reading-progress__bar{transition:none}}@media(max-width:640px){.home .post-list__link{grid-template-columns:1fr;gap:.5rem}.home .post-list__meta{flex-direction:row;gap:.75rem;padding-top:0}.home .post__nav{grid-template-columns:1fr}.home .post__nav a.is-next{text-align:left;align-items:flex-start}}.home .prose{color:var(--c-ink);font-family:var(--f-body);font-size:1.08rem;line-height:1.75}.home .prose>:first-child{margin-top:0}.home .prose h2,.home .prose h3,.home .prose h4{font-family:var(--f-display);color:var(--c-ink);line-height:1.2;letter-spacing:-.01em}.home .prose h2{font-size:1.7rem;margin-top:2.6rem;margin-bottom:.8rem;padding-top:.4rem}.home .prose h3{font-size:1.3rem;margin-top:2rem;margin-bottom:.6rem}.home .prose p,.home .prose ul,.home .prose ol,.home .prose blockquote,.home .prose pre{margin:1.15rem 0}.home .prose ul,.home .prose ol{padding-left:1.4rem}.home .prose li{margin:.35rem 0}.home .prose li::marker{color:var(--c-signal)}.home .prose a{color:var(--c-signal);text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.18em}.home .prose a:hover{text-decoration-thickness:.12em}.home .prose strong{color:var(--c-ink);font-weight:600}.home .prose blockquote{margin-inline:0;padding:.8rem 1.2rem;border-left:3px solid var(--c-signal);background:var(--c-surface);border-radius:0 8px 8px 0;color:var(--c-ink-dim)}.home .prose blockquote p:first-child{margin-top:0}.home .prose blockquote p:last-child{margin-bottom:0}.home .prose :not(pre)>code{font-family:var(--f-mono);font-size:.9em;background:var(--c-surface-2);color:var(--c-signal);padding:.12rem .4rem;border-radius:5px;border:1px solid var(--c-line)}.home .prose pre{font-family:var(--f-mono);font-size:.92rem;line-height:1.6;overflow-x:auto;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface-2);padding:1.1rem 1.2rem}.home .prose pre code{background:transparent;border:0;padding:0;color:inherit;font-size:inherit}.home .prose img{max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--c-line)}.home .prose figure{margin:1.6rem 0}.home .prose figcaption{font-family:var(--f-mono);font-size:.78rem;color:var(--c-ink-faint);text-align:center;margin-top:.5rem}.home .prose hr{border:0;border-top:1px solid var(--c-line);margin:2.4rem 0}.home .prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.4rem 0}.home .prose th,.home .prose td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--c-line)}.home .prose th{font-family:var(--f-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-faint)}html,body{margin:0;min-height:100%}*,*:before,*:after{box-sizing:border-box}body.home{background:#0d1117}
