.cv-blog{--cv-measure: 36rem;--cv-prose: 1.0625rem;--cv-leading: 1.75}.cv-article>*{max-width:var(--cv-measure);font-size:var(--cv-prose);line-height:var(--cv-leading)}.cv-article>.cv-cover,.cv-article>.cv-share{max-width:none}.cv-index{padding-block:var(--space-2xl) var(--space-xl)}.cv-index__title{margin:0;font-size:1.35rem;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--text-strong)}.cv-index__intro{max-width:34rem;margin:var(--space-sm) 0 0;font-size:var(--cv-prose);line-height:var(--cv-leading);color:var(--text-muted)}.cv-posts{display:flex;flex-direction:column;border-top:1px solid var(--border-soft)}.cv-post{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--space-md);align-items:start;padding:var(--space-lg) 0;border-bottom:1px solid var(--border-soft);text-decoration:none}.cv-post__thumb{display:block;overflow:hidden;border-radius:4px;aspect-ratio:400 / 210}.cv-post__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity var(--transition)}.cv-post:hover .cv-post__thumb img{opacity:.85}.cv-post__body{min-width:0}@media(max-width:560px){.cv-post{grid-template-columns:1fr;gap:var(--space-sm)}.cv-post__thumb{aspect-ratio:16 / 9}}.cv-post__date{display:block;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--color-muted)}.cv-post__title{margin:var(--space-2xs) 0 0;font-size:1.25rem;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--text-strong);overflow-wrap:anywhere;min-width:0}.cv-post__excerpt{margin:var(--space-xs) 0 0;font-size:.95rem;line-height:1.7;color:var(--text-muted)}.cv-post:hover .cv-post__title,.cv-post:focus-visible .cv-post__title{color:var(--accent)}.cv-post:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.cv-cover{margin:0 0 var(--space-xl);padding:0 3.2rem 0 1.4rem}.cv-cover__track{position:relative;height:5.5rem}.cv-cover__track:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--border-soft)}.cv-cover__pt,.cv-cover__now{position:absolute;left:var(--x);top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%}.cv-cover__pt{background:var(--accent)}.cv-cover__now{background:var(--bg-page, transparent);border:1px solid var(--color-muted)}.cv-cover__yr,.cv-cover__to{position:absolute;font-family:var(--font-mono);font-size:.8125rem;font-weight:400;letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap}.cv-cover__yr{left:50%;transform:translate(-50%);color:var(--accent)}.cv-cover__yr:after{content:"";position:absolute;left:50%;width:1px;height:.85rem;background:var(--border-soft)}.cv-cover__pt.is-up .cv-cover__yr{bottom:1.35rem}.cv-cover__pt.is-up .cv-cover__yr:after{top:100%}.cv-cover__pt.is-down .cv-cover__yr{top:1.35rem}.cv-cover__pt.is-down .cv-cover__yr:after{bottom:100%}.cv-cover__to{left:1rem;top:50%;transform:translateY(-50%);color:var(--color-muted)}[dir=rtl] .cv-cover{direction:ltr}.cv-article p,.cv-article li{font-size:var(--cv-prose);line-height:var(--cv-leading);color:var(--text-muted)}.cv-article p{margin:0 0 var(--space-md)}.cv-article>p:first-of-type{font-size:1.1875rem;line-height:1.65;color:var(--text-strong)}.cv-article h2{display:block;margin:var(--space-xl) 0 var(--space-md);font-size:1.4rem;font-weight:700;line-height:1.3;letter-spacing:-.02em;color:var(--text-strong);overflow-wrap:anywhere;min-width:0}.cv-article h2 .hd{display:block}.cv-article h2 .hd:first-letter{text-transform:uppercase}.cv-article h2 .yr{display:block;margin-bottom:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.14em;font-variant-numeric:tabular-nums;color:var(--accent)}.cv-article blockquote{margin:var(--space-lg) 0;padding-left:var(--space-md);border-left:2px solid var(--accent);font-size:var(--cv-prose);line-height:var(--cv-leading);color:var(--text-strong)}.cv-article blockquote p:last-child{margin-bottom:0}.cv-article>hr:last-of-type~p{font-size:.875rem;line-height:1.7;color:var(--color-muted)}.cv-article em{color:inherit;font-style:italic;font-weight:inherit}.cv-blog .share-bar.cv-share{--sb-fg: var(--text-strong);--sb-muted: var(--color-muted);--sb-accent: var(--accent);--sb-border: var(--border-soft);--sb-bg: var(--surface-muted);--sb-accent-soft: color-mix(in oklch, var(--accent) 12%, transparent);margin:var(--space-xl) 0 0;padding-top:var(--space-md);border-top:1px solid var(--border-soft)}.cv-meta{margin:var(--space-sm) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-muted)}.cv-back{margin:var(--space-xl) 0 0;padding-top:var(--space-md);border-top:1px solid var(--border-soft);font-size:.9rem}.cv-back a{color:var(--accent);text-decoration:none}.cv-back a:hover{text-decoration:underline;text-underline-offset:3px}[dir=rtl] .cv-article h2 .yr,[dir=rtl] .cv-post__date{direction:ltr;unicode-bidi:isolate}.cv-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--border-soft)}.cv-pager__b{font-family:var(--font-mono);font-size:.9rem;color:var(--accent);text-decoration:none;white-space:nowrap}.cv-pager__b--prev:before{content:"\2039  "}.cv-pager__b--next:after{content:" \203a"}.cv-pager__b:hover{text-decoration:underline;text-underline-offset:3px}.cv-pager__b:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cv-pager__b.is-off{color:var(--color-muted);opacity:.4;pointer-events:none}.cv-pager__n{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted);font-variant-numeric:tabular-nums}.cv-hero-img{margin:0 auto var(--space-xl);width:min(100%,768px);padding:0 clamp(1rem,4vw,2rem)}.cv-hero-img img{width:100%;height:auto;aspect-ratio:1200 / 630;object-fit:cover;border-radius:6px;display:block}.cv-credit{margin:var(--space-lg) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted)}.cv-credit a{color:var(--color-muted);text-decoration:underline;text-underline-offset:2px}.cv-credit a:hover{color:var(--accent)}
