:root,[data-theme=light]{--bg-page:#f3f7fb;--bg-soft:#d8dfef;--bg-card:#fff;--bg-elevated:#f8fafc;--bg-muted:#f6f6f6;--bg-chip:#f0f3f9;--bg-cover:#eef2f7;--bg-code:#f4f6f9;--bg-pre:#f6f8fa;--bg-auth:#f8fafc;--bg-auth-in:#eef6ff;--bg-inline:#f7f9fc;--ink:#121212;--ink-hover:#444;--muted:#646464;--muted-2:#999;--nav:#8797b7;--line:#ededed;--line-strong:#dbdbdb;--line-card:#ebeef5;--line-soft:#eef2f7;--line-auth:#e5ebf3;--line-auth-in:#cfe0f5;--line-focus:#c9d5ea;--blue:#175199;--blue-soft:#e8f0fe;--accent:#ff5134;--accent-soft:#ffc4ba;--tag:#5870af;--danger:#d4380d;--success:#389e0d;--header-bg:color-mix(in srgb, var(--bg-card) 88%, transparent);--header-shadow:0 1px 2px #1212120a;--page-glow:radial-gradient(1200px 480px at 12% -10%, #17519912, transparent 60%), radial-gradient(900px 420px at 90% 0%, #ff51340d, transparent 55%);--radius:8px;--radius-sm:5px;--radius-lg:14px;--font:"HarmonyOS_Regular", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Noto Sans SC", sans-serif;--font-medium:"HarmonyOS_Medium", "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;--ease:.2s cubic-bezier(.22, 1, .36, 1);--ease-out:.42s cubic-bezier(.16, 1, .3, 1);--shadow-soft:0 1px 2px #1212120a, 0 8px 24px #1751990a;--shadow-lift:0 8px 28px #12204014;--on-accent:#fff;--provider-border:#dadce0;--provider-fg:#3c4043;--provider-hover:#f7f8f8;--github-bg:#24292f;--github-hover:#1b1f23}[data-theme=dark]{--bg-page:#0f1419;--bg-soft:#1a2330;--bg-card:#171d26;--bg-elevated:#1c2430;--bg-muted:#1a222e;--bg-chip:#222b38;--bg-cover:#222b38;--bg-code:#222b38;--bg-pre:#1a222e;--bg-auth:#1a222e;--bg-auth-in:#1a2a3d;--bg-inline:#1a222e;--ink:#e8eef6;--ink-hover:#c5d0de;--muted:#9aa8ba;--muted-2:#7a8798;--nav:#8b9bb0;--line:#273041;--line-strong:#334155;--line-card:#273041;--line-soft:#243041;--line-auth:#2a3648;--line-auth-in:#35506e;--line-focus:#3d5a80;--blue:#6ea8e8;--blue-soft:#1e334d;--accent:#ff6b52;--accent-soft:#5a2a22;--tag:#7b92c9;--danger:#ff8a65;--success:#73d13d;--header-bg:color-mix(in srgb, var(--bg-card) 82%, transparent);--header-shadow:0 1px 3px #00000059;--page-glow:radial-gradient(1000px 420px at 10% -8%, #6ea8e81f, transparent 58%), radial-gradient(800px 380px at 92% 0%, #ff6b5214, transparent 52%);--shadow-soft:0 1px 2px #00000040, 0 10px 28px #00000038;--shadow-lift:0 12px 32px #00000059;--on-accent:#fff;--provider-border:#3a4658;--provider-fg:#e8eef6;--provider-hover:#222b38;--github-bg:#e8eef6;--github-hover:#fff}html{color:var(--ink);background:var(--bg-page);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg-page);background-image:var(--page-glow);color:var(--ink);transition:background-color var(--ease), color var(--ease);background-attachment:fixed}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid color-mix(in srgb, var(--blue) 70%, transparent);outline-offset:2px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-main{flex:1;padding:10px 0 28px}.container{width:min(1100px,100% - 24px);margin:0 auto}.site-header{z-index:40;background:var(--header-bg);border-bottom:1px solid var(--line);box-shadow:var(--header-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.2);transition:background-color var(--ease), border-color var(--ease), box-shadow var(--ease), height var(--ease);position:sticky;top:0}.site-header.is-scrolled{box-shadow:var(--shadow-soft);border-bottom-color:color-mix(in srgb, var(--line) 70%, var(--blue) 30%)}.header-inner{height:52px;transition:height var(--ease);align-items:center;gap:1rem;display:flex}.site-header.is-scrolled .header-inner{height:48px}.brand{color:inherit;transition:transform var(--ease);flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.brand:hover{transform:translateY(-1px)}.brand:hover .brand-mark{transform:rotate(-6deg)scale(1.04)}.brand-logo{align-items:center;gap:.45rem;line-height:1;display:inline-flex}.brand-mark{width:28px;height:28px;transition:transform var(--ease);flex-shrink:0}.brand-logo-lg .brand-mark{width:40px;height:40px}.brand-mark-plate{fill:color-mix(in srgb, var(--blue) 12%, var(--bg-card));stroke:color-mix(in srgb, var(--blue) 35%, var(--line));stroke-width:1.2px}.brand-mark-k{fill:var(--ink)}.brand-mark-dot{fill:var(--accent)}.brand-word{font-family:var(--font-medium);letter-spacing:.04em;color:var(--ink);font-size:1.2rem;font-weight:700}.brand-logo-lg .brand-word{letter-spacing:-.02em;font-size:clamp(1.55rem,3vw,2.05rem)}.brand-word span{color:var(--accent)}.nav{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:1.05rem;min-width:0;height:100%;display:flex;overflow:auto hidden}.nav::-webkit-scrollbar{width:0;height:0;display:none}.nav a{color:var(--nav);transition:color var(--ease);white-space:nowrap;padding:.2rem 0;font-size:15px;position:relative}.nav a:after{content:"";background:var(--ink);transform-origin:0;height:2px;transition:transform var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.nav a:hover,.nav a.active{color:var(--ink);font-weight:600}.nav a.active:after,.nav a:hover:after{transform:scaleX(1)}.header-actions{flex-shrink:0;align-items:center;gap:.45rem;margin-left:auto;display:flex}.header-search{color:var(--muted-2);border:1px solid var(--line);background:var(--bg-muted);transition:color var(--ease), border-color var(--ease), background-color var(--ease), transform var(--ease), box-shadow var(--ease);border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .9rem;font-size:13px;display:inline-flex}.header-search:hover{color:var(--blue);border-color:var(--line-focus);transform:translateY(-1px);box-shadow:0 4px 12px #17519914}.header-search svg{opacity:.7;flex-shrink:0}.pref-btn{appearance:none;border:1px solid var(--line);background:var(--bg-muted);min-width:34px;height:32px;color:var(--muted);cursor:pointer;transition:color var(--ease), border-color var(--ease), background-color var(--ease), transform var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.25rem;padding:0 .55rem;display:inline-flex}.pref-btn:hover{color:var(--blue);border-color:var(--line-focus)}.pref-btn.is-active{color:var(--blue);border-color:var(--line-focus);background:var(--blue-soft)}.pref-btn svg{transition:transform .22s}.pref-btn.theme-spin svg{transform:rotate(180deg)}.lang-btn{letter-spacing:.02em;font-size:12px;font-weight:700}.layout-grid{grid-template-columns:minmax(0,1fr) 296px;align-items:start;gap:12px;display:grid}.main-column,.side-column{min-width:0}.feed-panel,.article-panel,.side-card{background:var(--bg-card);border:1px solid var(--line-card);border-radius:var(--radius);transition:background-color var(--ease), border-color var(--ease), box-shadow var(--ease), transform var(--ease);box-shadow:0 1px #12121205}.feed-panel,.article-panel{overflow:hidden}.side-card{position:relative}.feed-tabs{border-bottom:1px solid var(--line);align-items:stretch;gap:0;height:50px;padding:0 12px;display:flex}.feed-tabs a{color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 18px;font-size:16px;display:flex}.feed-tabs a.active,.feed-tabs a:hover{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.feed-intro{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;padding:10px 16px 4px;display:flex}.feed-intro strong{color:var(--ink);font-size:14px}.tool-stack{border-bottom:1px solid var(--line);background:radial-gradient(900px 280px at 8% 0%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 55%), radial-gradient(700px 260px at 92% 20%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 50%), linear-gradient(180deg, color-mix(in srgb, var(--bg-elevated) 70%, transparent), transparent);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:1rem 1.5rem;padding:1.35rem 1.2rem 1.45rem;display:grid;position:relative;overflow:hidden}.tool-stack:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--blue) 35%, var(--line)), transparent);pointer-events:none;height:1px;position:absolute;inset:auto 0 0}.tool-stack-kicker{letter-spacing:.04em;color:var(--muted);text-transform:lowercase;align-items:center;gap:.35rem;margin:0 0 .35rem;font-size:12px;display:inline-flex}.tool-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.tool-dot-blue{background:var(--blue)}.tool-dot-orange{background:var(--accent)}.tool-stack-brand{margin:0 0 .35rem;line-height:1.15}.tool-stack-brand .brand-logo{display:inline-flex}.tool-stack-tagline{color:var(--muted);max-width:28rem;margin:0 0 .45rem;font-size:.95rem;line-height:1.5}.tool-stack-hint{margin:0;font-size:12px}.tool-stack-icons{perspective:900px;transform-style:preserve-3d;animation:tool-stack-in .7s var(--ease) both;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem .55rem;padding:.35rem .2rem .6rem;display:grid;transform:rotateX(8deg)rotateY(-12deg)rotate(4deg)}.tool-stack-icons.is-loading{opacity:.45}.tool-icon{color:inherit;animation:4.2s ease-in-out infinite tool-float;animation-delay:calc(var(--tool-i,0) * .12s);flex-direction:column;align-items:center;gap:.28rem;text-decoration:none;transition:transform .18s,filter .18s;display:flex;position:relative}.tool-icon:hover{filter:brightness(1.05);transform:translateY(-4px)scale(1.04)}.tool-icon-face{background:var(--tool-bg,#64748b);width:3.1rem;height:3.1rem;color:var(--tool-fg,#fff);font-family:var(--font-medium);letter-spacing:-.02em;border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:.85rem;place-items:center;font-size:.95rem;font-weight:700;display:grid;overflow:hidden;box-shadow:0 10px 18px #0f172a24,0 2px #0f172a14}.tool-icon-face.has-brand{padding:.45rem}.tool-brand-svg{width:100%;height:100%;display:block}.tool-icon-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:4.6rem;font-size:10px;overflow:hidden}@keyframes tool-stack-in{0%{opacity:0;transform:rotateX(8deg)rotateY(-12deg)rotate(4deg)translateY(12px)}to{opacity:1;transform:rotateX(8deg)rotateY(-12deg)rotate(4deg)translateY(0)}}@keyframes tool-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}[data-theme=dark] .tool-icon-face{border-color:#ffffff1f;box-shadow:0 10px 20px #0006,0 2px #00000040}[data-theme=dark] .tool-icon-face.has-brand{background:#1c2430}[data-theme=dark] .brand-mark-plate{fill:color-mix(in srgb, var(--blue) 18%, var(--bg-card))}@media (width<=820px){.tool-stack{grid-template-columns:1fr;padding:1rem 1rem 1.1rem}.tool-stack-icons{grid-template-columns:repeat(4,minmax(0,1fr));transform:rotateX(4deg)rotateY(-6deg)rotate(2deg)}}@media (width<=520px){.tool-stack-icons{grid-template-columns:repeat(3,minmax(0,1fr));transform:none}.tool-icon-face{border-radius:.7rem;width:2.75rem;height:2.75rem;font-size:.85rem}}@media (prefers-reduced-motion:reduce){.tool-stack-icons,.tool-icon,.page-enter,.reveal,.skel{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}.panel-head{border-bottom:1px solid var(--line);padding:12px 16px 6px}.panel-head h1{margin:0 0 2px;font-size:18px;font-weight:600}.panel-head p{color:var(--muted);margin:0}.feed-list{padding:0 8px}.feed-item{border-bottom:1px solid var(--line);border-radius:var(--radius-sm);animation:fade-up .48s var(--ease-out) both;transition:background-color var(--ease), transform var(--ease);margin:2px 0;padding:14px 10px 12px}.feed-item:first-child{animation-delay:30ms}.feed-item:nth-child(2){animation-delay:70ms}.feed-item:nth-child(3){animation-delay:.11s}.feed-item:nth-child(4){animation-delay:.15s}.feed-item:nth-child(5){animation-delay:.19s}.feed-item:nth-child(6){animation-delay:.23s}.feed-item:last-child{border-bottom:none}.feed-item:hover{background:color-mix(in srgb, var(--blue-soft) 45%, transparent)}.feed-item.is-expanded{background:color-mix(in srgb, var(--bg-elevated) 80%, transparent);box-shadow:inset 0 0 0 1px var(--line-soft)}.feed-title{color:var(--ink);letter-spacing:-.01em;margin:0 0 6px;font-size:18px;font-weight:600;line-height:1.35}.feed-title a:hover{color:var(--ink-hover)}.feed-body{align-items:flex-start;gap:12px;display:flex}.feed-title-btn,.feed-more,.feed-cover{appearance:none;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0}.feed-title-btn{width:100%;transition:color var(--ease);align-items:flex-start;gap:.45rem;display:inline-flex}.feed-title-btn:hover{color:var(--blue)}.feed-title-chevron{border-right:1.6px solid var(--muted-2);border-bottom:1.6px solid var(--muted-2);width:.55rem;height:.55rem;transition:transform var(--ease), border-color var(--ease);opacity:.7;flex-shrink:0;margin-top:.35em;transform:rotate(-45deg)}.feed-item.is-expanded .feed-title-chevron{border-color:var(--blue);opacity:1;transform:rotate(45deg)}.feed-cover{border-radius:var(--radius-sm);background:var(--bg-cover);width:148px;height:82px;transition:transform var(--ease), box-shadow var(--ease);flex:0 0 148px;display:block;position:relative;overflow:hidden;box-shadow:0 2px 8px #1220400f}.feed-cover:after{content:"";opacity:0;transition:opacity var(--ease);pointer-events:none;background:linear-gradient(#0000 55%,#1212121f);position:absolute;inset:0}.feed-item:hover .feed-cover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.feed-item:hover .feed-cover:after{opacity:1}.feed-cover img{object-fit:cover;width:100%;height:100%;transition:transform .48s var(--ease-out)}.feed-item:hover .feed-cover img{transform:scale(1.05)}.feed-rich{min-width:0;color:var(--ink);flex:1;line-height:1.67}.feed-rich p{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;margin:0 0 4px;display:-webkit-box;overflow:hidden}.feed-more{color:var(--blue);transition:gap var(--ease), color var(--ease);align-items:center;gap:.25rem;font-size:13px;display:inline-flex}.feed-more:after{content:"→";opacity:.55;transition:transform var(--ease), opacity var(--ease)}.feed-more:hover{gap:.45rem;text-decoration:none}.feed-more:hover:after{opacity:1;transform:translate(2px)}.feed-more:disabled{opacity:.6;cursor:wait;text-decoration:none}.feed-more:disabled:after{display:none}.feed-expanded{animation:expand-in .32s var(--ease-out) both;padding:4px 0 8px}.feed-expanded-cover{border-radius:var(--radius);max-width:100%;box-shadow:var(--shadow-soft);margin-bottom:12px;overflow:hidden}.feed-expanded-cover img{object-fit:cover;width:100%;max-height:360px}.feed-expanded-prose{margin-bottom:12px}.feed-expanded-actions{border-top:1px solid var(--line);align-items:center;gap:1rem;padding-top:8px;display:flex}.feed-permalink{color:var(--muted);transition:color var(--ease);font-size:13px}.feed-permalink:hover{color:var(--blue)}.feed-actions{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:10px;padding:6px 0 0;font-size:12px;display:flex}.feed-tag,.chip{background:color-mix(in srgb, var(--tag) 12%, var(--bg-chip));color:var(--tag);border:1px solid color-mix(in srgb, var(--tag) 22%, transparent);border-radius:var(--radius-sm);letter-spacing:.01em;align-items:center;padding:0 9px;font-size:12px;font-weight:600;line-height:22px;display:inline-flex}.feed-footer{text-align:center;padding:18px 16px 20px}.feed-footer .btn{min-width:9rem}.feed-skeleton{gap:14px;padding:14px 18px 8px;display:grid}.skel{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-muted) 0%, color-mix(in srgb, var(--bg-chip) 40%, var(--bg-muted)) 45%, var(--bg-muted) 100%);background-size:200% 100%;animation:1.2s ease-in-out infinite skel-shine}.skel-title{width:72%;height:18px}.skel-line{width:100%;height:12px}.skel-line.short{width:48%}.skel-row{gap:12px;display:flex}.skel-cover{flex:0 0 148px;width:148px;height:82px}.skel-text{flex:1;align-content:start;gap:8px;padding-top:4px;display:grid}@keyframes skel-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.side-card{margin-bottom:10px;padding:12px 14px}.side-card-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:13px;font-weight:700}.side-profile{background:radial-gradient(120px 80px at 100% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), radial-gradient(140px 90px at 0% 100%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 70%), var(--bg-card)}.side-profile-head{align-items:center;gap:.7rem;margin-bottom:.55rem;display:flex}.side-avatar{width:40px;height:40px;font-family:var(--font-medium);color:var(--blue);background:linear-gradient(145deg, var(--blue-soft), color-mix(in srgb, var(--accent-soft) 35%, var(--bg-chip)));border:1px solid color-mix(in srgb, var(--blue) 18%, var(--line));border-radius:12px;place-items:center;font-size:15px;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff59}.side-profile-name{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.side-profile-bio,.side-profile-tagline{color:var(--muted);margin:0 0 8px;line-height:1.6}.side-profile-tagline{color:var(--accent)}.side-link{color:var(--blue);transition:gap var(--ease), color var(--ease);align-items:center;gap:.25rem;margin-top:6px;font-size:13px;display:inline-flex}.side-link:after{content:"→";opacity:.5;transition:transform var(--ease), opacity var(--ease)}.side-link:hover{gap:.4rem;text-decoration:none}.side-link:hover:after{opacity:1;transform:translate(2px)}.side-tags{flex-wrap:wrap;gap:8px;display:flex}.side-tags a{background:var(--bg-chip);color:var(--tag);border-radius:var(--radius-sm);transition:background-color var(--ease), border-color var(--ease), transform var(--ease), color var(--ease);border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.side-tags a span{color:var(--muted-2);font-size:12px}.side-tags a:hover{background:var(--blue-soft);border-color:color-mix(in srgb, var(--blue) 20%, transparent);color:var(--blue);transform:translateY(-1px)}.side-works{gap:12px;display:grid}.side-work{border-radius:var(--radius-sm);transition:background-color var(--ease), transform var(--ease);margin:0 -6px;padding:6px;display:block}.side-work:hover{background:color-mix(in srgb, var(--blue-soft) 55%, transparent);transform:translateY(-1px)}.side-work-cover{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-cover);transition:box-shadow var(--ease);margin-bottom:6px;position:relative;overflow:hidden;box-shadow:0 2px 8px #1220400f}.side-work:hover .side-work-cover{box-shadow:var(--shadow-soft)}.side-work-cover img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out)}.side-work:hover .side-work-cover img{transform:scale(1.06)}.side-work-title{-webkit-line-clamp:2;transition:color var(--ease);-webkit-box-orient:vertical;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.side-work:hover .side-work-title{color:var(--blue)}.side-foot{color:var(--muted-2);font-size:12px;line-height:1.7}.side-foot a{color:var(--muted-2);text-decoration:underline}.reveal{opacity:0;transition:opacity var(--ease-out), transform var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(12px)}.reveal.is-in{opacity:1;transform:translateY(0)}.page-enter{animation:page-in .38s var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.search-bar{gap:8px;padding:12px 16px 4px;display:flex}.search-bar input{border:1px solid var(--line-strong);background:var(--bg-muted);color:var(--ink);transition:border-color var(--ease), box-shadow var(--ease), background-color var(--ease);border-radius:999px;flex:1;padding:.55rem 1rem}.search-bar input:focus{border-color:var(--line-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 16%, transparent);background:var(--bg-card);outline:none}.filters{flex-wrap:wrap;gap:8px;padding:10px 16px 4px;display:flex}.filters button{border:1px solid var(--line);background:var(--bg-card);color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--ease), color var(--ease), border-color var(--ease), transform var(--ease);padding:.35rem .85rem}.filters button.active,.filters button:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.btn{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--ink);cursor:pointer;transition:border-color var(--ease), color var(--ease), background-color var(--ease), transform var(--ease), box-shadow var(--ease);justify-content:center;align-items:center;padding:.5rem 1.05rem;display:inline-flex}.btn:hover{border-color:var(--blue);color:var(--blue);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}.btn.primary:hover{filter:brightness(1.05);color:var(--on-accent)}.btn.ghost{background:0 0}.btn.danger{color:var(--accent);border-color:var(--accent-soft)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--success)}.empty-state,.state-msg{color:var(--muted);padding:2rem 1.25rem}.pagination{justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.kak-padding{padding:10px 16px 18px}.kak-title{margin:4px 0 8px;font-size:22px;font-weight:600;line-height:1.35}.kak-info{color:var(--muted-2);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:13px;display:flex}.kak-line{border-bottom:1px solid var(--line-strong);margin:12px 0 18px}.article-cover{border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}.source-link{color:var(--muted);word-break:break-all}.source-link a{color:var(--blue)}.video-frame{aspect-ratio:16/9;border-radius:var(--radius);background:#000;max-width:630px;margin:0 auto 1.25rem;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%}.comments-box{border-top:1px solid var(--line);margin-top:.85rem;padding-top:.7rem}.comments-title{margin-bottom:.2rem;font-size:14px;font-weight:700}.comments-hint{margin:0 0 .5rem;font-size:12px;line-height:1.45}.feed-expanded .comments-box{margin-top:.85rem}.comment-form{gap:.45rem;margin-bottom:.75rem;display:grid}.comment-fields{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.comment-form label{color:var(--muted);gap:.2rem;font-size:12px;display:grid}.comment-form input,.comment-form textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:var(--bg-card);border-radius:4px;padding:6px 8px}.comment-form textarea{resize:vertical;min-height:56px}.comment-hp{height:0;position:absolute;left:-9999px;overflow:hidden}.comment-form-actions{flex-wrap:wrap;align-items:center;gap:.55rem .75rem;display:flex}.comment-oauth-inline{flex-wrap:wrap;align-items:center;gap:.45rem .55rem;display:inline-flex}.comment-oauth-label{font-size:12px}.comment-logged-bar{flex-wrap:wrap;align-items:center;gap:.45rem .65rem;display:flex}.comment-replying{color:var(--muted);align-items:center;gap:.6rem;font-size:13px;display:flex}.comment-replying button{color:var(--blue);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.comment-list,.comment-replies{margin:0;padding:0;list-style:none}.comment-item{border-top:1px solid var(--line-soft);padding:.55rem 0}.comment-auth{margin:0 0 .55rem;font-size:12px}.comment-auth-panel{border:1px solid var(--line-auth);background:var(--bg-auth);transition:background-color var(--ease), border-color var(--ease);border-radius:5px;margin:0 0 .55rem;padding:8px 10px}.comment-auth-panel.is-in{background:var(--bg-auth-in);border-color:var(--line-auth-in)}.comment-auth-session{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.comment-auth-session-text{flex:1;min-width:120px}.comment-auth-session-name{color:var(--ink);font-size:13px;font-weight:700}.comment-auth-guest{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.comment-auth-guest-copy{flex-wrap:wrap;flex:1;align-items:baseline;gap:.35rem .55rem;min-width:140px;font-size:12px;display:flex}.comment-auth-btns{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.comment-provider-btn{border:1px solid var(--provider-border);background:var(--bg-card);height:32px;color:var(--provider-fg);font:inherit;cursor:pointer;transition:background-color var(--ease);border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.comment-provider-btn:hover{background:var(--provider-hover)}.comment-provider-btn.github{background:var(--github-bg);border-color:var(--github-bg);color:var(--bg-page)}.comment-provider-btn.github:hover{background:var(--github-hover)}.comment-gsi-slot{transform-origin:0;align-items:center;min-height:32px;display:inline-flex;transform:scale(.92)}.comment-logged-hint{margin:0;font-size:12px}.comment-avatar-lg{width:28px;height:28px}.comment-empty{margin:.35rem 0 .55rem;font-size:12px}.comment-auth-providers,.comment-auth-user{flex-wrap:wrap;align-items:center;gap:.55rem .85rem;display:flex}.comment-auth-link{color:var(--blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.comment-auth-link:hover{text-decoration:underline}.comment-email-note{align-items:flex-end;padding-bottom:8px;font-size:13px;line-height:1.4;display:flex}.comment-avatar{object-fit:cover;background:var(--bg-cover);border-radius:50%;flex-shrink:0;width:28px;height:28px}.comment-avatar-fallback{color:var(--blue);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.comment-head{color:var(--muted);align-items:flex-start;gap:.65rem;margin-bottom:.35rem;font-size:13px;display:flex}.comment-head-text{flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem;display:flex}.comment-via{text-transform:lowercase;font-size:12px}.comment-nick{color:var(--blue);font-weight:600;text-decoration:none}.comment-body{white-space:pre-wrap;color:var(--ink);margin:0;font-size:14px;line-height:1.6}.comment-reply-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-top:.35rem;padding:0;font-size:12px}.comment-reply-btn:hover{color:var(--blue)}.comment-floor-no{color:var(--muted);font-size:12px;font-weight:500}.comment-at{color:var(--blue);margin-right:.15rem;font-weight:500}.comment-inline-composer{background:var(--bg-inline);border:1px solid var(--line-auth);border-radius:4px;margin-top:.65rem;padding:.75rem .85rem}.comment-form-inline{margin-bottom:0}.comment-form-main{border-top:0;margin-top:0;padding-top:0}.comment-list{border-top:1px solid var(--line);margin-top:.35rem}.comment-compose-title{color:var(--ink);margin-bottom:.25rem;font-size:13px;font-weight:600}.comment-form-feedback{margin-top:.75rem}.comment-replies{border-left:2px solid var(--line-auth);margin:.5rem 0 0 .85rem;padding-left:.85rem;list-style:none}.comment-replies .comment-item{padding:.7rem 0}.comment-replies .comment-replies{margin-left:.5rem}@media (width<=640px){.comment-fields{grid-template-columns:1fr}}.prose{color:var(--ink);font-size:15px;line-height:1.67}.prose>:first-child{margin-top:0}.prose p{margin:0 0 1rem}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-medium);margin:1.5rem 0 .75rem;line-height:1.35}.prose h2{font-size:1.35em}.prose h3{font-size:1.2em}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.35rem}.prose li{margin:.3rem 0}.prose blockquote{border-left:3px solid var(--line-focus);color:var(--muted);margin:0 0 1rem;padding:.15rem 0 .15rem .9rem}.prose a{color:var(--blue)}.prose a:hover{text-decoration:underline}.prose img{border-radius:4px;max-width:100%;margin:1rem 0}.prose pre,.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.prose code{background:var(--bg-code);border-radius:3px;padding:.1rem .35rem}.prose pre{background:var(--bg-pre);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 1rem;padding:.9rem 1rem;overflow:auto}.prose pre code{background:0 0;padding:0}.collect-list{gap:0;padding:8px 16px 16px;display:grid}.collect-card{border-bottom:1px solid var(--line);border-radius:var(--radius-sm);transition:background-color var(--ease), transform var(--ease);padding:14px 6px;display:block}.collect-card:hover{background:color-mix(in srgb, var(--blue-soft) 50%, transparent);transform:translate(2px)}.collect-card .meta{color:var(--muted);gap:.5rem;margin-bottom:.35rem;font-size:12px;display:flex}.collect-card h3{margin:0 0 .35rem;font-size:16px;font-weight:600}.collect-card p{color:var(--muted);margin:0}.collect-url{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;margin-top:.4rem;font-size:12px;display:block;overflow:hidden}.studio{padding:0}.studio-layout{grid-template-columns:minmax(180px,240px) 1fr;gap:12px;margin-top:12px;display:grid}.studio-side,.studio-panel{background:var(--bg-card);border:1px solid var(--line-card);border-radius:var(--radius);padding:.85rem}.studio-side{max-height:70vh;overflow:auto}.studio-list{gap:.35rem;display:grid}.studio-list-item{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;gap:.1rem;padding:.5rem .6rem;display:grid}.studio-list-item span{color:var(--muted);font-size:12px}.studio-list-item:hover,.studio-list-item.active{border-color:var(--line-focus);background:var(--blue-soft)}.studio-panel{gap:.7rem;display:grid}.studio-panel label{color:var(--muted);gap:.3rem;font-size:13px;display:grid}.studio-panel input,.studio-panel textarea,.studio-panel select{border:1px solid var(--line-strong);background:var(--bg-card);width:100%;color:var(--ink);border-radius:4px;padding:.55rem .7rem}.studio-panel textarea{resize:vertical;min-height:280px}.studio-row{grid-template-columns:repeat(3,1fr);gap:.7rem;display:grid}.studio-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=992px){.layout-grid{grid-template-columns:1fr}}@media (width<=720px){.feed-body{flex-direction:column}.feed-cover{aspect-ratio:16/9;flex-basis:auto;width:100%;height:auto}.feed-title{font-size:18px}.nav{gap:.75rem}.header-search{display:none}.studio-layout,.studio-row{grid-template-columns:1fr}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes expand-in{0%{opacity:.35;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.feed-item,.feed-expanded{animation:none}}
