@font-face{font-family:Libre Bodoni;src:url(/fonts/libre-bodoni.woff2) format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--color-primary: #18181b;--color-on-primary: #ffffff;--color-secondary: #3f3f46;--color-accent: #ec4899;--color-accent-text: #be185d;--color-on-accent: #000000;--color-background: #fafafa;--color-foreground: #09090b;--color-card: #ffffff;--color-card-foreground: #09090b;--color-muted: #e8ecf0;--color-muted-foreground: #475569;--color-border: #e4e4e7;--color-ring: #18181b;--font-display: "Libre Bodoni", "Songti SC", "Noto Serif SC", Georgia, serif;--font-body: "Public Sans", -apple-system, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-hero: clamp(2.5rem, 6vw, 4.25rem);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--measure: 68ch;--radius: 4px;--border-width: 1px;--duration: .22s;--ease: cubic-bezier(.2, .7, .3, 1)}@media(prefers-color-scheme:dark){:root{--color-primary: #fafafa;--color-on-primary: #18181b;--color-secondary: #d4d4d8;--color-accent: #f472b6;--color-accent-text: #f472b6;--color-on-accent: #18181b;--color-background: #0b0b0d;--color-foreground: #f4f4f5;--color-card: #141417;--color-card-foreground: #f4f4f5;--color-muted: #1f1f24;--color-muted-foreground: #a1a1aa;--color-border: #27272a;--color-ring: #fafafa}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh;display:flex;flex-direction:column}img,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--duration) var(--ease)}button,a{cursor:pointer}:focus-visible{outline:2px solid var(--color-ring);outline-offset:3px;border-radius:2px}::selection{background:var(--color-accent);color:var(--color-on-accent)}.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--space-5)}@media(min-width:768px){.wrap{padding-inline:var(--space-6)}}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.stack>*+*{margin-top:var(--space-4)}.skip-link{position:absolute;left:-9999px;top:var(--space-3);z-index:100;background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius)}.skip-link:focus{left:var(--space-5)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}h1{font-size:var(--text-hero)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-xl)}p{text-wrap:pretty}.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted-foreground)}.lede{font-size:var(--text-lg);line-height:1.55;color:var(--color-muted-foreground);max-width:52ch}.site-header{border-bottom:var(--border-width) solid var(--color-border);background:color-mix(in srgb,var(--color-background) 88%,transparent);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:72px}.wordmark{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em;text-decoration:none;display:inline-flex;align-items:center;gap:var(--space-2)}.wordmark:before{content:"";width:10px;height:10px;background:var(--color-accent);display:inline-block}.nav{display:flex;align-items:center;gap:var(--space-5);font-size:var(--text-sm);font-weight:500}.nav a{text-decoration:none;color:var(--color-muted-foreground);padding-block:var(--space-2)}.nav a:hover,.nav a[aria-current=page]{color:var(--color-foreground)}.nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--color-accent)}.hero{padding-block:var(--space-9) var(--space-8);border-bottom:var(--border-width) solid var(--color-border)}.hero__text{grid-column:1 / -1}@media(min-width:900px){.hero__text{grid-column:1 / span 8}.hero__aside{grid-column:10 / span 3}}.hero__title{margin-block:var(--space-4) var(--space-5)}.hero__meta{display:grid;gap:var(--space-4);align-content:start;font-size:var(--text-sm)}.hero__meta dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-3);border-top:var(--border-width) solid var(--color-border);padding-top:var(--space-4)}.hero__meta dt{color:var(--color-muted-foreground);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase}.hero__meta dd{margin:0}.section{padding-block:var(--space-8)}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);border-bottom:var(--border-width) solid var(--color-border);padding-bottom:var(--space-3);margin-bottom:var(--space-2)}.post-list{list-style:none;padding:0;display:grid}.post-row{border-bottom:var(--border-width) solid var(--color-border)}.post-row__link{display:grid;grid-template-columns:1fr;gap:var(--space-2);padding-block:var(--space-5);text-decoration:none;align-items:baseline;transition:background-color var(--duration) var(--ease)}.post-row__link:hover{background:color-mix(in srgb,var(--color-muted) 55%,transparent)}@media(min-width:768px){.post-row__link{grid-template-columns:56px 1fr 160px;gap:var(--space-5);padding-inline:var(--space-3)}}.post-row__num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted-foreground);letter-spacing:.04em}.post-row__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1.25;text-wrap:balance}.post-row__link:hover .post-row__title{color:var(--color-accent-text)}.post-row__desc{color:var(--color-muted-foreground);font-size:var(--text-sm);margin-top:var(--space-2);max-width:62ch}.post-row__date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted-foreground);white-space:nowrap}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0;list-style:none;margin-top:var(--space-3)}.tag{font-size:var(--text-xs);letter-spacing:.04em;padding:2px var(--space-2);border:var(--border-width) solid var(--color-border);border-radius:999px;color:var(--color-muted-foreground);background:var(--color-card)}.article{padding-block:var(--space-8)}.article__head{max-width:78ch;border-bottom:var(--border-width) solid var(--color-border);padding-bottom:var(--space-6);margin-bottom:var(--space-7)}.article__title{font-size:clamp(2rem,4.5vw,3.25rem);margin-block:var(--space-3) var(--space-4)}.article__meta{display:flex;flex-wrap:wrap;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted-foreground)}.prose{max-width:var(--measure);font-size:var(--text-lg);line-height:1.75}.prose>*+*{margin-top:1.15em}.prose h2{font-size:var(--text-2xl);margin-top:2em}.prose h3{font-size:var(--text-xl);margin-top:1.7em}.prose a{color:var(--color-foreground);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px}.prose a:hover{color:var(--color-accent-text)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-5);color:var(--color-muted-foreground);font-family:var(--font-display);font-size:var(--text-xl);line-height:1.4}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--color-muted);padding:2px 5px;border-radius:3px}.prose pre{background:var(--color-primary);color:var(--color-background);padding:var(--space-5);border-radius:var(--radius);overflow-x:auto;font-size:var(--text-sm);line-height:1.6}.prose pre code{background:none;padding:0;color:inherit}.prose hr{border:0;border-top:var(--border-width) solid var(--color-border);margin-block:var(--space-7)}.prose img{border-radius:var(--radius);margin-inline:auto}.site-footer{margin-top:auto;border-top:var(--border-width) solid var(--color-border);padding-block:var(--space-7);font-size:var(--text-sm);color:var(--color-muted-foreground)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-5);align-items:baseline}.site-footer a{text-decoration:none}.site-footer a:hover{color:var(--color-accent-text)}@media(prefers-reduced-motion:no-preference){[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .38s var(--ease),transform .38s var(--ease)}[data-reveal].is-visible{opacity:1;transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rule-accent{height:4px;width:56px;background:var(--color-accent);border:0}
