:root{--bg:#0b1220;--bg-elev:#0f172a;--text:#e9edf3;--muted:#a6afbd;--accent:#a78bfa;--accent-strong:#c4b5fd;--border:#1c2a3f}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}html{font-size:17px;line-height:1.7;scroll-padding-top:84px}@media(min-width:900px){html{font-size:18px}}body{font-family:inter,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1,"calt" 1}.container{max-width:1040px;margin:0 auto;padding:0 20px}hr{border:0;border-top:1px solid var(--border);margin:28px 0}a{color:var(--accent);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;transition:background-size .2s ease,color .2s ease}a:hover{color:var(--accent-strong);background-size:100% 2px}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}h1,h2,h3{line-height:1.25;margin:0 0 14px;letter-spacing:.2px}p{margin:0 0 20px;line-height:1.75}ul,ol{padding-left:1.2em;margin:0 0 20px;line-height:1.75}blockquote{margin:22px auto;padding:14px 16px;border-left:4px solid var(--accent);background:rgba(167,139,250,.12);color:var(--text);border-radius:12px;display:flex;align-items:center;justify-content:flex-start;text-align:left}.post-content blockquote>*{text-align:left}.post-content blockquote p{margin-left:0;margin-right:0;width:100%}.post-content blockquote>:first-child{margin-top:0}.post-content blockquote>:last-child{margin-bottom:0}.site-header{position:sticky;top:0;z-index:50;background:rgba(11,18,32,.72);backdrop-filter:saturate(160%)blur(12px);-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--border)}.site-header .header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:12px}.brand{display:inline-flex;align-items:center;gap:12px;background-image:none}.brand-mark{width:38px;height:38px;border-radius:11px;object-fit:cover;display:block;border:1px solid var(--border);box-shadow:0 2px 6px rgba(0,0,0,.25)}.brand-name{margin:0;font-size:17px;font-weight:700;letter-spacing:-.2px;line-height:1.2;color:var(--text);white-space:nowrap}.brand:hover .brand-name{color:var(--accent-strong)}.site-nav ul{list-style:none;padding:0;margin:0;display:flex;align-items:center;gap:4px}.site-nav a{display:inline-block;padding:7px 12px;border-radius:9px;color:var(--muted);font-size:14px;font-weight:500;background-image:none;transition:color .18s ease,background .18s ease}.site-nav a:hover{color:var(--text);background:rgba(167,139,250,.12)}.site-footer{margin-top:72px;border-top:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}.site-footer .footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:28px 24px;flex-wrap:wrap;padding-block:40px 24px}.footer-brand .brand{align-items:center}.footer-tagline{color:var(--muted);font-size:13.5px;line-height:1.6;margin:12px 0 0;max-width:44ch}.footer-social{display:flex;align-items:center;gap:8px}.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elev);color:var(--muted);background-image:none;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease}.footer-social a:hover{color:var(--accent-strong);border-color:var(--accent-strong);background:rgba(167,139,250,.1);transform:translateY(-2px)}.footer-social svg{width:18px;height:18px;fill:currentColor;display:block}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding-block:16px 30px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}.footer-copy{margin:0}.footer-copy .heart{color:var(--accent-strong)}.footer-legal{display:flex;align-items:center;gap:18px}.footer-legal a{color:var(--muted);background-image:none}.footer-legal a:hover{color:var(--accent-strong)}.twitter-tweet{margin:0 auto}.post-index{max-width:1040px;margin:0 auto;padding:36px 0 8px}.list-header{max-width:1040px;margin:0 auto;padding:48px 0 0;text-align:center}.list-header h1{margin:0}.featured-hero{position:relative;overflow:hidden;padding:38px 40px 34px;border-radius:24px;border:1px solid var(--border);background:radial-gradient(130% 150% at 100% 0%,rgba(167,139,250,.16),transparent 55%),linear-gradient(180deg,rgba(255,255,255,3%),rgba(255,255,255,0)),var(--bg-elev);transition:border-color .25s ease,box-shadow .25s ease}.featured-hero::before{content:"";position:absolute;top:-45%;right:-12%;width:440px;height:440px;background:radial-gradient(circle,rgba(167,139,250,.22),transparent 62%);filter:blur(28px);pointer-events:none;z-index:0}.featured-hero:hover{border-color:rgba(167,139,250,.5);box-shadow:0 18px 50px rgba(0,0,0,.4)}.hero-content{position:relative;z-index:1}.post-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:999px;background:rgba(167,139,250,.14);border:1px solid rgba(167,139,250,.35);color:var(--accent-strong);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.post-badge::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--accent-strong);box-shadow:0 0 8px var(--accent-strong)}.hero-title{font-size:33px;line-height:1.18;font-weight:700;letter-spacing:-.2px;margin:16px 0 12px}.hero-title a{color:var(--text);background-image:none}.hero-title a:hover{color:var(--accent-strong)}.hero-title a::after{content:"";position:absolute;inset:0;z-index:1}.hero-description{color:var(--text);opacity:.8;margin:12px 0 18px;font-size:16.5px;line-height:1.6}.hero-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;color:var(--accent-strong);font-weight:600;font-size:15px}.hero-cta .arrow,.post-row-title .arrow{transition:transform .2s ease}.featured-hero:hover .hero-cta .arrow{transform:translateX(5px)}.section-label{display:flex;align-items:center;gap:16px;margin:40px 0 4px;padding:0 4px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.section-label::after{content:"";flex:1;height:1px;background:var(--border)}.post-rows{margin-top:6px}.post-row{position:relative;display:grid;grid-template-columns:96px 1fr;gap:26px;padding:26px 20px;border-radius:16px;transition:background .2s ease}.post-row:not(:last-child)::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:1px;background:var(--border)}.post-row:hover{background:linear-gradient(90deg,rgba(167,139,250,9%),rgba(167,139,250,2%))}.post-row-date{display:flex;flex-direction:column;gap:2px;padding-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap}.post-row-day{color:var(--text);font-weight:600;font-size:15px}.post-row-year{color:var(--muted);font-size:13px}.post-row-title{font-size:20px;line-height:1.35;font-weight:600;letter-spacing:-.1px;margin:0 0 8px}.post-row-title a{color:var(--text);background-image:none;display:inline}.post-row-title .arrow{display:inline-block;margin-left:6px;color:var(--accent);opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease}.post-row:hover .post-row-title a{color:var(--accent-strong)}.post-row:hover .post-row-title .arrow{opacity:1;transform:translateX(0)}.post-row-title a::after{content:"";position:absolute;inset:0;z-index:1}.post-row-desc{color:var(--text);opacity:.72;margin:0 0 12px;font-size:15px;line-height:1.6}.post-row-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.post-row-time{color:var(--muted);font-size:12.5px}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted);font-size:13.5px;margin:0}.meta-sep{opacity:.45}.tag-list{position:relative;z-index:2;list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.post-row-foot .tag-list{margin:0}.tag-chip{display:inline-block;padding:4px 11px;border:1px solid var(--border);border-radius:999px;background:rgba(167,139,250,8%);color:var(--muted);font-size:12px;transition:color .18s ease,background .18s ease,border-color .18s ease}.tag-chip:hover{border-color:var(--accent-strong);color:#0b1220;background:var(--accent-strong);text-decoration:none}.tag-cloud{padding:20px 0 36px;text-align:center}.tag-cloud-title{font-size:22px;margin:8px 0 16px}.tag-cloud .tag-list{justify-content:center}.tag-count{opacity:.7;margin-left:6px;font-size:.9em}.tag-featured{border-color:var(--accent-strong)}.tag-featured:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:#0b1220}.main-content{display:block}.pagination-section{margin-top:40px;max-width:760px;margin-left:auto;margin-right:auto}.pagination-spacing{height:20px}.pagination-divider{border:0;border-top:1px solid var(--border);margin:0 0 20px}.pagination-container{width:100%;text-align:center;margin-top:0}.pagination{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:24px auto 8px}.pagination a{display:inline-block;padding:9px 18px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);color:var(--text);font-size:14px;background-image:none;transition:border-color .18s ease,color .18s ease,background .18s ease}.pagination a:hover{border-color:var(--accent);color:var(--accent-strong)}.pagination .older{margin-left:auto}.post{padding:56px 0 32px;text-align:center}.post-header{max-width:960px;margin:0 auto 40px;padding-bottom:28px;border-bottom:1px solid var(--border);text-align:left}.post .post-title{font-size:clamp(30px,4.6vw,42px);letter-spacing:-.5px;line-height:1.15;margin:0;text-align:left}.post-header .post-meta{margin-top:18px;font-size:14px}.post-author-avatar{width:26px;height:26px;border-radius:8px;object-fit:cover;border:1px solid var(--border)}.post-author{color:var(--text);font-weight:500}.post .post-meta{justify-content:flex-start}.post .tag-list{justify-content:center}.post-content img{max-width:100%;height:auto;border-radius:6px}.post-content pre{overflow:auto;background:#0a1326;padding:14px;border-radius:10px;border:1px solid var(--border);line-height:1.6;box-shadow:0 1px rgba(255,255,255,3%)inset,0 6px 18px rgba(0,0,0,.35);scrollbar-color:var(--accent)var(--bg-elev);scrollbar-width:thin;position:relative}.post-content code{background:#121a32;color:#f0f1ff;padding:.12em .45em;margin:0 .2em;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"hlig" 0;font-size:.95em;border:1px solid rgba(255,255,255,6%)}.post-content pre code{background:0 0;color:inherit;padding:0;margin:0;border:0}.post-nav{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:12px}.post-nav a{display:inline-block;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);color:var(--text);max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-nav a:hover{border-color:var(--accent);background:var(--accent);color:#fff;text-decoration:none}.post-content{text-align:center;max-width:960px;margin-left:auto;margin-right:auto}.post-content p,.post-content ul,.post-content ol,.post-content pre,.post-content blockquote,.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{text-align:left;margin-left:auto;margin-right:auto}.post-content p{line-height:1.8;margin-bottom:24px}.post-content ul,.post-content ol{line-height:1.8;margin-bottom:24px}.post-content h1{margin-top:2em}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin-top:3em}.post-content h1:first-child,.post-content h2:first-child,.post-content h3:first-child{margin-top:1em}.post-content figure{margin:20px auto}.post-content figcaption{font-size:.85em;color:var(--muted);text-align:center;margin-top:6px}.post-content h2{font-size:1.5em;padding-bottom:.5em}.post-content h2,.post-content h3{position:relative}.post-content .heading-link{color:inherit;text-decoration:none;background-image:none}.heading-anchor{position:absolute;right:100%;top:0;margin-right:.35em;color:var(--muted);font-weight:500;opacity:0;transition:opacity .15s ease,color .15s ease;user-select:none}.post-content h2:hover .heading-anchor,.post-content h3:hover .heading-anchor,.post-content h2:focus-within .heading-anchor,.post-content h3:focus-within .heading-anchor{opacity:1}.post-content .heading-link:hover .heading-anchor{color:var(--accent-strong)}@media(max-width:899px){.heading-anchor{display:none}}.chroma{background:#0a1326;color:#f8f8f2;border:1px solid var(--border);border-radius:10px;box-shadow:0 1px rgba(255,255,255,3%)inset,0 6px 18px rgba(0,0,0,.35);scrollbar-color:var(--accent)var(--bg-elev);scrollbar-width:thin;position:relative}.post-content pre code[data-lang]::after,.chroma code[data-lang]::after{content:attr(data-lang);position:absolute;top:8px;right:10px;font-size:12px;color:#0b1220;background:var(--accent-strong);border-radius:999px;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em}@media(max-width:768px){.post-content pre code[data-lang]::after,.chroma code[data-lang]::after{display:none}}.post-content pre::-webkit-scrollbar,.chroma::-webkit-scrollbar{height:10px;width:10px}.post-content pre::-webkit-scrollbar-track,.chroma::-webkit-scrollbar-track{background:var(--bg-elev);border-radius:8px}.post-content pre::-webkit-scrollbar-thumb,.chroma::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;border:1px solid rgba(255,255,255,5%)}.post-content pre::-webkit-scrollbar-thumb:hover,.chroma::-webkit-scrollbar-thumb:hover{background:var(--accent)}.chroma .err{color:#f88}.chroma .ln{color:#555}.chroma .k{color:#ff79c6}.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#ff79c6}.chroma .na,.chroma .nb,.chroma .bp{color:#8be9fd}.chroma .nc,.chroma .no,.chroma .nd{color:#50fa7b}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#f1fa8c}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#bd93f9}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:#6272a4}.chroma code,.highlight code{background:0 0}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}}.archive{padding:28px 0;text-align:center}.archive-year{margin:0 0 40px}.archive-year h2{font-size:20px;margin:0 0 16px;color:var(--muted);text-align:center}.archive-list{list-style:none;padding:0;margin:0;text-align:left}.archive-item{display:flex;align-items:baseline;gap:12px;margin:0 0 8px}.archive-date{color:var(--muted);font-size:14px;min-width:60px}.archive-title{color:var(--text);text-decoration:none}.archive-title:hover{color:var(--accent-strong)}@media(max-width:640px){.container{padding:0 12px}html{scroll-padding-top:68px}.site-header .header-inner{flex-wrap:wrap;justify-content:center;gap:8px 12px;padding-block:10px}.brand-mark{width:32px;height:32px;border-radius:9px}.brand-name{font-size:15px}.site-nav{width:100%}.site-nav ul{flex-wrap:wrap;gap:4px;justify-content:center}.site-nav a{padding:6px 10px;font-size:13px}.post .post-title{letter-spacing:-.3px}.post{padding-top:40px}.post-header{margin-bottom:32px;padding-bottom:22px}.post-index{padding:16px 0 8px}.featured-hero{padding:26px 22px 24px;border-radius:20px}.hero-title{font-size:25px}.hero-description{font-size:15.5px}.section-label{margin-top:30px}.post-row{grid-template-columns:1fr;gap:8px;padding:20px 14px}.post-row:not(:last-child)::after{left:14px;right:14px}.post-row-date{flex-direction:row;gap:6px;padding-top:0}.post-row-day,.post-row-year{font-size:13px;font-weight:500;color:var(--muted)}.post-row-title{font-size:18px}.tag-list{gap:6px}.pagination{gap:8px}.post-content pre{padding:10px;border-radius:8px}.post-content pre code[data-lang]::after,.chroma code[data-lang]::after{top:6px;right:8px;font-size:10px;padding:1px 6px}.post-content h2{font-size:1.35em}blockquote{padding:12px 14px;border-radius:10px}.site-footer{margin-top:48px}.site-footer .footer-inner{flex-direction:column;align-items:center;text-align:center;padding-block:30px 20px;gap:22px}.footer-brand .brand{justify-content:center}.footer-tagline{margin-left:auto;margin-right:auto}.footer-bottom{flex-direction:column;align-items:center;text-align:center;gap:12px;padding-block:16px 26px}}.tag-description{padding:24px 0;margin:24px 0;text-align:center}.tag-description p{margin:0;color:var(--text);font-style:normal;line-height:1.8;font-size:.95em}h1{text-align:center}