:root{--bg: #f6f7fb;--surface: #ffffff;--surface-2: #eef1f8;--text: #222a38;--text-2: #5b6577;--text-3: #8a93a6;--border: #e4e8f1;--accent: #4f6df5;--accent-2: #8a5cf6;--accent-soft: rgba(79, 109, 245, .09);--accent-grad: linear-gradient(120deg, #4f6df5, #8a5cf6);--code-bg: #f1f3f9;--shadow: 0 1px 2px rgba(20, 30, 60, .04), 0 4px 16px rgba(20, 30, 60, .06);--shadow-lg: 0 8px 40px rgba(20, 30, 60, .12);--radius: 14px;--radius-sm: 9px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", Consolas, "SF Mono", Menlo, monospace;color-scheme:light}html[data-theme=dark]{--bg: #0e1219;--surface: #161c28;--surface-2: #1d2534;--text: #e8edf6;--text-2: #98a3b8;--text-3: #6b7689;--border: #262e3e;--accent: #6d88ff;--accent-2: #a98cff;--accent-soft: rgba(109, 136, 255, .13);--code-bg: #11151d;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}img{max-width:100%}.container{max-width:1060px;margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:60px;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--text);white-space:nowrap}.brand:hover{text-decoration:none}.brand .logo{width:32px;height:32px;border-radius:9px;background:var(--accent-grad);display:grid;place-items:center;color:#fff;font-family:var(--font-mono);font-weight:800;font-size:15px;flex-shrink:0}.nav{display:flex;align-items:center;gap:2px}.nav a{padding:7px 12px;border-radius:8px;color:var(--text-2);font-size:14.5px;white-space:nowrap}.nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.nav a.nav-private{color:var(--accent-2)}.nav-actions{display:flex;align-items:center;gap:8px}.icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;padding:0}.icon-btn:hover{color:var(--text);border-color:var(--text-3)}.icon-btn svg{width:17px;height:17px}.menu-btn{display:none}@media(max-width:900px){.menu-btn{display:grid}.nav{position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 16px 16px;display:none;box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:11px 12px;font-size:15px}}.hero{padding:64px 0 28px;text-align:center}.hero .badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-family:var(--font-mono)}.hero h1{margin:20px 0 12px;font-size:clamp(28px,5vw,44px);line-height:1.25;letter-spacing:.5px}.hero h1 .grad{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{margin:0 auto;max-width:620px;color:var(--text-2);font-size:16.5px}.hero .stats{margin-top:26px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.hero .stats span{padding:7px 16px;border:1px solid var(--border);background:var(--surface);border-radius:999px;font-size:13.5px;color:var(--text-2)}.entry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:34px 0 8px}@media(max-width:760px){.entry-grid{grid-template-columns:1fr}}.entry-card{position:relative;display:block;padding:24px 22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.entry-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-lg);text-decoration:none}.entry-card .icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);margin-bottom:14px}.entry-card .icon svg{width:22px;height:22px;stroke:var(--accent)}.entry-card h3{margin:0 0 6px;font-size:17px;color:var(--text)}.entry-card p{margin:0;font-size:14px;color:var(--text-2)}.entry-card .count{margin-top:12px;font-size:12.5px;color:var(--text-3);font-family:var(--font-mono)}.section{margin:40px 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.section-head h2{margin:0;font-size:21px}.section-head .more{font-size:14px}.card-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media(max-width:760px){.card-list{grid-template-columns:1fr}}.card{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:border-color .15s ease,transform .15s ease}.card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none}.card .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--text-3);font-family:var(--font-mono)}.card h3{margin:0;font-size:16.5px;line-height:1.45;color:var(--text)}.card p{margin:0;font-size:14px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.tag.accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.tag.purple{background:#8a5cf61f;color:var(--accent-2);border-color:transparent}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}.chip{padding:5px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13.5px;cursor:pointer;font-family:inherit}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.search-box{position:relative;max-width:640px;margin:18px auto 30px}.search-box input{width:100%;padding:14px 18px 14px 46px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-size:15.5px;font-family:inherit;outline:none;transition:border-color .15s ease}.search-box input:focus{border-color:var(--accent)}.search-box .icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.search-hint{text-align:center;color:var(--text-3);font-size:13.5px;margin-top:26px}.result-item{padding:14px 0;border-bottom:1px solid var(--border)}.result-item .type{margin-right:8px}.result-item h3{margin:0 0 4px;font-size:16px}.result-item h3 a{color:var(--text)}.result-item h3 a:hover{color:var(--accent)}.result-item .desc{margin:0;font-size:13.5px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article{max-width:800px;margin:0 auto;padding:36px 0 30px}.article .meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 6px;font-size:13px;color:var(--text-3);font-family:var(--font-mono)}.article h1{margin:0;font-size:clamp(24px,4vw,32px);line-height:1.35}.article .excerpt{margin:12px 0 0;color:var(--text-2);font-size:15.5px}.problem-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 8px}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:10px;font-size:14px;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit;transition:transform .12s ease}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent}.prose{font-size:15.8px}.prose h2{margin:34px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:21px}.prose h3{margin:26px 0 10px;font-size:17.5px}.prose p{margin:12px 0}.prose ul,.prose ol{padding-left:24px}.prose li{margin:6px 0}.prose blockquote{margin:16px 0;padding:10px 16px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;color:var(--text-2)}.prose blockquote p{margin:4px 0}.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14.5px}.prose th,.prose td{border:1px solid var(--border);padding:8px 12px;text-align:left}.prose th{background:var(--surface-2)}.prose code:not(.astro-code code){font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);border:1px solid var(--border);padding:1px 6px;border-radius:6px}.prose pre{margin:16px 0;border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.prose pre code{display:block;padding:16px 18px;font-family:var(--font-mono);font-size:13.8px;line-height:1.65;overflow-x:auto}.prose a{font-weight:500}.prose hr{border:none;border-top:1px solid var(--border);margin:28px 0}html[data-theme=dark] .astro-code{background-color:var(--shiki-dark-bg, #0d1117)!important;color:var(--shiki-dark, #e1e4e8)!important}html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style, inherit)!important}.login-wrap{min-height:calc(100vh - 260px);display:grid;place-items:center;padding:48px 20px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:34px 30px;text-align:center}.login-card .lock{width:52px;height:52px;margin:0 auto 14px;border-radius:14px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent)}.login-card h1{margin:0 0 6px;font-size:20px}.login-card p{margin:0 0 22px;font-size:13.5px;color:var(--text-2)}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input[type=password]{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);font-size:15px;font-family:inherit;outline:none}.login-card input[type=password]:focus{border-color:var(--accent)}.login-card .error{margin:0;padding:9px 12px;border-radius:8px;background:#e84a5f1a;color:#e84a5f;font-size:13.5px;text-align:left}html[data-theme=dark] .login-card .error{color:#ff7a8a}.site-footer{margin-top:70px;border-top:1px solid var(--border);background:var(--surface)}.site-footer .container{padding-top:26px;padding-bottom:26px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;font-size:13.5px;color:var(--text-3)}.site-footer .links{display:flex;gap:18px;flex-wrap:wrap}.site-footer a{color:var(--text-2)}.page-head{padding:40px 0 8px}.page-head h1{margin:0 0 8px;font-size:28px}.page-head p{margin:0;color:var(--text-2)}.notice{padding:12px 16px;border-radius:10px;background:var(--accent-soft);border:1px dashed var(--accent);font-size:14px;color:var(--text);margin:14px 0}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}@media(max-width:760px){.about-grid{grid-template-columns:1fr}}.about-card{padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:center}.about-card .avatar{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:var(--accent-grad);display:grid;place-items:center;color:#fff;font-weight:800;font-family:var(--font-mono);font-size:20px}.about-card h3{margin:0 0 4px;font-size:16.5px}.about-card p{margin:0;font-size:13.5px;color:var(--text-2)}.empty{padding:40px 0;text-align:center;color:var(--text-3)}
