.fw{--accent: #111111;--accent-hover: #000000;--accent-muted: rgba(0, 0, 0, .06);--code-bg: rgba(0, 0, 0, .045);--fw-bg: transparent;--fw-bg-soft: rgba(0, 0, 0, .04);--fw-card: rgba(255, 255, 255, .55);--fw-card-2: rgba(255, 255, 255, .38);--fw-text: #111111;--fw-muted: #5f5f5f;--fw-border: rgba(0, 0, 0, .12);--fw-border-strong: rgba(0, 0, 0, .28);--fw-accent: #111111;--fw-accent-hover: #000000;--fw-accent-soft: rgba(0, 0, 0, .06);--fw-shadow: 0 1px 2px rgba(0, 0, 0, .05);--fw-shadow-hover: 0 10px 30px rgba(0, 0, 0, .14);--fw-radius: 14px;--fw-radius-sm: 10px;color:var(--fw-text)}[data-theme=dark] .fw{--accent: #fafafa;--accent-hover: #ffffff;--accent-muted: rgba(255, 255, 255, .08);--code-bg: rgba(255, 255, 255, .06);--fw-bg: transparent;--fw-bg-soft: rgba(255, 255, 255, .05);--fw-card: rgba(18, 18, 18, .5);--fw-card-2: rgba(255, 255, 255, .04);--fw-text: #fafafa;--fw-muted: #a1a1aa;--fw-border: rgba(255, 255, 255, .12);--fw-border-strong: rgba(255, 255, 255, .28);--fw-accent: #fafafa;--fw-accent-hover: #ffffff;--fw-accent-soft: rgba(255, 255, 255, .08);--fw-shadow: 0 1px 2px rgba(0, 0, 0, .3);--fw-shadow-hover: 0 10px 30px rgba(0, 0, 0, .5)}.fw-glass{background:var(--fw-card);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--fw-border)}.fw-panel{background:var(--fw-card);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border:1px solid var(--fw-border);border-radius:var(--fw-radius);padding:1.75rem;box-shadow:var(--fw-shadow)}.fw .blog-layout{display:flex;gap:2rem;align-items:flex-start}.fw .blog-main{flex:1;min-width:0}.fw .blog-sidebar{width:280px;flex-shrink:0;position:sticky;top:calc(var(--nav-height) + 1.5rem)}.fw-page-head{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--fw-border);position:relative}.fw-page-head h1{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--fw-text)}.fw-page-head .fw-sub{color:var(--fw-muted);font-size:.9rem;margin-top:.35rem;letter-spacing:.02em}.fw-profile{background:var(--fw-card);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--fw-border);border-radius:var(--fw-radius);padding:1.6rem 1.4rem;text-align:center;box-shadow:var(--fw-shadow)}.fw-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:2px solid var(--fw-text);margin:0 auto .7rem;display:block;transition:transform .3s ease}.fw-profile:hover .fw-avatar{transform:scale(1.03)}.fw-profile h3{font-size:1.15rem;font-weight:800;margin:0 0 .15rem;color:var(--fw-text);letter-spacing:-.01em}.fw-profile .fw-bio{color:var(--fw-muted);font-size:.8rem;margin-bottom:.9rem;line-height:1.5}.fw-social{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.1rem}.fw-social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--fw-border);color:var(--fw-muted);background:var(--fw-card-2);transition:all .25s ease;text-decoration:none}.fw-social a:hover{color:#fff;background:var(--fw-text);border-color:var(--fw-text);transform:translateY(-2px)}[data-theme=dark] .fw-social a:hover{color:#111}.fw-social a svg{transition:transform .25s ease}.fw-social a:hover svg{transform:scale(1.08)}.fw-nav{display:flex;flex-direction:column;gap:.15rem;border-top:1px solid var(--fw-border);padding-top:.9rem}.fw-nav a{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;border-radius:var(--fw-radius-sm);color:var(--fw-text);text-decoration:none;font-size:.88rem;font-weight:600;transition:all .2s ease;position:relative}.fw-nav a:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:2px;height:60%;background:var(--fw-text);transition:transform .2s ease}.fw-nav a:hover{background:var(--fw-accent-soft);padding-left:1rem}.fw-nav a:hover:before{transform:translateY(-50%) scaleY(1)}.fw-nav a svg{width:16px;height:16px;flex-shrink:0;opacity:.7}.fw-post{display:block;background:var(--fw-card);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid var(--fw-border);border-radius:var(--fw-radius);overflow:hidden;margin-bottom:1.1rem;box-shadow:var(--fw-shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;text-decoration:none;color:inherit}.fw-post:hover{transform:translateY(-3px);box-shadow:var(--fw-shadow-hover);border-color:var(--fw-border-strong)}.fw-cover{position:relative;height:128px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.18),transparent 55%),linear-gradient(135deg,#000000d1,#00000080);overflow:hidden}.fw-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.25));pointer-events:none}.fw-cover-letter{font-size:3rem;font-weight:800;color:#fffffff0;text-shadow:0 2px 12px rgba(0,0,0,.35);z-index:1;letter-spacing:-.02em}.fw-post-body{padding:1rem 1.3rem 1.2rem}.fw-post-meta{display:flex;align-items:center;gap:.5rem;color:var(--fw-muted);font-size:.78rem;margin-bottom:.45rem;letter-spacing:.02em}.fw-post-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--fw-muted)}.fw-post-title{display:block;font-size:1.38rem;font-weight:800;line-height:1.35;color:#fff;text-decoration:none;margin-bottom:.4rem;letter-spacing:-.01em;transition:color .2s ease,text-decoration-color .2s ease;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.fw-post:hover .fw-post-title{text-decoration-color:var(--fw-text)}.fw-post-excerpt{color:var(--fw-muted);font-size:.88rem;line-height:1.65;margin:0 0 .7rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fw-post-more{font-size:.8rem;font-weight:700;color:var(--fw-text);text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;transition:gap .2s ease,opacity .2s ease;opacity:.7}.fw-post:hover .fw-post-more{gap:.55rem;opacity:1}.fw-post-head{text-align:center;margin-bottom:1.8rem;padding-bottom:1.4rem;border-bottom:1px solid var(--fw-border)}.fw-post-head h1{font-size:2rem;font-weight:800;letter-spacing:-.02em;line-height:1.35;margin:0 0 .8rem;color:var(--fw-text)}.fw-post-head .fw-post-meta{justify-content:center}.fw-post-content{font-size:1.02rem;line-height:1.9;color:var(--fw-text)}.fw-post-content h1,.fw-post-content h2,.fw-post-content h3{font-family:var(--font-sans);color:var(--fw-text);font-weight:800;letter-spacing:-.01em}.fw-post-content h2{font-size:1.45rem;border-bottom:1px solid var(--fw-border);padding-bottom:.4rem;margin:2rem 0 .8rem}.fw-post-content h3{font-size:1.2rem;margin:1.6rem 0 .5rem}.fw-post-content p{margin:0 0 1.1rem}.fw-post-content a{color:var(--fw-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-thickness .2s ease}.fw-post-content a:hover{text-decoration-thickness:2px}.fw-post-content img{max-width:100%;height:auto;border-radius:var(--fw-radius-sm);display:block;margin:1.4rem auto;border:1px solid var(--fw-border)}.fw-post-content blockquote{border-left:3px solid var(--fw-text);margin:1.4rem 0;padding:.7rem 1.2rem;color:var(--fw-muted);background:var(--fw-card-2);border-radius:0 var(--fw-radius-sm) var(--fw-radius-sm) 0}.fw-post-content blockquote p:last-child{margin-bottom:0}.fw-post-content ul,.fw-post-content ol{padding-left:1.5rem;margin:.8rem 0}.fw-post-content li{margin-bottom:.35rem}.fw-post-content ul li::marker{color:var(--fw-muted)}.fw-post-content pre{background:var(--code-bg);border:1px solid var(--fw-border);border-radius:var(--fw-radius-sm);padding:1rem 1.2rem;overflow-x:auto;margin:1.2rem 0}.fw-post-content .code-block-wrap pre{margin:0}.fw .card{background:var(--fw-card);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid var(--fw-border);border-radius:var(--fw-radius-sm);color:var(--fw-text);box-shadow:var(--fw-shadow)}.fw .card-title{color:var(--fw-text)}.fw .card-meta,.fw .card-excerpt{color:var(--fw-muted)}.fw .tag,.fw .badge{background:var(--code-bg);color:var(--fw-muted);border-color:var(--fw-border)}.fw .tag-accent,.fw .badge-accent{background:var(--fw-accent-soft);color:var(--fw-text);border-color:var(--fw-border-strong)}.fw-empty{text-align:center;padding:3rem 1.5rem;color:var(--fw-muted)}@media(max-width:640px){.fw-panel{padding:1.1rem}.fw .blog-layout{flex-direction:column}.fw .blog-sidebar{width:100%;position:static}.fw-cover{height:108px}.fw-post-head h1{font-size:1.6rem}}
