:root{--bg:#f4f6f8;--bg-elevated:#fff;--card:#fff;--ink:#0f172a;--ink-2:#1e293b;--muted:#64748b;--muted-2:#94a3b8;--line:#e2e8f0;--line-strong:#cbd5e1;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#dbeafe;--accent-ink:#1e3a8a;--focus:#2563eb59;--ok:#059669;--ok-soft:#d1fae5;--warn:#f97316;--warn-soft:#fff7ed;--warn-ink:#9a3412;--danger:#dc2626;--danger-soft:#fee2e2;--cat-price:#0ea5e9;--cat-price-soft:#e0f2fe;--cat-price-ink:#0369a1;--cat-ai:#8b5cf6;--cat-ai-soft:#ede9fe;--cat-ai-ink:#5b21b6;--cat-weekly:#f59e0b;--cat-weekly-soft:#fef3c7;--cat-weekly-ink:#b45309;--cat-method:#10b981;--cat-method-soft:#d1fae5;--cat-method-ink:#047857;--cat-news:#6366f1;--cat-news-soft:#e0e7ff;--cat-news-ink:#4338ca;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:16px;--r-xl:20px;--r-2xl:24px;--r-pill:999px;--shadow-sm:0 1px 2px #0f172a0a;--shadow:0 1px 2px #0f172a0a,0 8px 24px #0f172a0f;--shadow-lg:0 4px 12px #0f172a0f,0 16px 40px #0f172a14;--shadow-hover:0 4px 12px #0f172a14,0 20px 48px #0f172a1a;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--max:1160px;--prose:720px;--gutter:32px;--gutter-m:16px;--font-sans:"Noto Sans CJK SC","Noto Sans SC","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"Noto Sans Mono CJK SC","JetBrains Mono","SF Mono",ui-monospace,monospace;--fs-display:34px;--lh-display:1.28;--fw-display:800;--fs-h1:30px;--lh-h1:1.3;--fw-h1:800;--fs-h2:22px;--lh-h2:1.35;--fw-h2:800;--fs-h3:18px;--lh-h3:1.4;--fw-h3:800;--fs-body:16px;--lh-body:1.85;--fw-body:400;--fs-ui:15px;--lh-ui:1.7;--fw-ui:400;--fs-sm:13px;--lh-sm:1.5;--fw-sm:600;--fs-xs:12px;--lh-xs:1.4;--fw-xs:700;--fs-stat:24px;--lh-stat:1.2;--fw-stat:800}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-ui);line-height:var(--lh-ui);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}img{max-width:100%;display:block}.sample-banner{color:#e2e8f0;letter-spacing:.06em;text-align:center;background:#0f172a;padding:8px 12px;font-size:12px;font-weight:600}.wrap{width:min(100% - var(--gutter),var(--max));margin-inline:auto}.page{padding:28px 0 48px}.topbar{z-index:40;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f4f6f8eb;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;min-height:60px;display:flex}.brand{align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex;color:var(--ink)!important}.logo{background:linear-gradient(135deg,#2563eb,#06b6d4);border-radius:10px;flex-shrink:0;width:32px;height:32px;box-shadow:inset 0 0 0 1px #ffffff40}.nav{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.nav a{color:var(--muted);border-radius:var(--r-pill);padding:8px 12px;font-size:13px;font-weight:600}.nav a.is-on,.nav a:hover{color:var(--ink);box-shadow:var(--shadow);background:#fff}.top-actions{align-items:center;gap:8px;display:flex}.icon-btn{border-radius:var(--r-pill);border:1px solid var(--line);width:40px;height:40px;color:var(--muted);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;place-items:center;font-size:16px;display:grid}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.icon-btn.is-on{background:var(--accent-soft);color:var(--accent);border-color:#bfdbfe}.btn{border-radius:var(--r-pill);background:var(--accent);color:#fff;cursor:pointer;border:0;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.btn:hover{background:var(--accent-hover);color:#fff}.btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn:disabled,.btn.is-disabled{opacity:.45;cursor:not-allowed}.btn-lg{min-height:48px;padding:0 22px;font-size:14px}.btn-sm{min-height:32px;padding:0 12px;font-size:12px}.btn-soft{color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff}.btn-soft:hover{color:var(--accent);background:#fff;border-color:#bfdbfe}.btn-ghost{color:var(--muted);background:0 0;border:1px solid #0000}.btn-ghost:hover{color:var(--ink);border-color:var(--line);background:#fff}.btn-danger{background:var(--danger)}.btn-ok{background:var(--ok)}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:700}.input,.select,textarea.input{border-radius:var(--r-md);border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);font:inherit;box-shadow:var(--shadow-sm);background:#fff;padding:0 16px}textarea.input{resize:vertical;min-height:120px;padding:12px 16px;line-height:1.6}.input:focus,.select:focus,textarea.input:focus{outline:3px solid var(--focus);border-color:var(--accent)}.input.is-error{border-color:var(--danger);outline-color:#dc262640}.hint{color:var(--muted);font-size:12px}.hint-error{color:var(--danger);font-weight:600}.subscribe-row{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.subscribe-row .input{flex:220px}.pill{border-radius:var(--r-pill);letter-spacing:.04em;align-items:center;padding:3px 10px;font-size:11px;font-weight:800;line-height:1.4;display:inline-flex}.pill-price{background:var(--cat-price-soft);color:var(--cat-price-ink)}.pill-ai{background:var(--cat-ai-soft);color:var(--cat-ai-ink)}.pill-weekly{background:var(--cat-weekly-soft);color:var(--cat-weekly-ink)}.pill-method{background:var(--cat-method-soft);color:var(--cat-method-ink)}.pill-news{background:var(--cat-news-soft);color:var(--cat-news-ink)}.pill-neutral{color:var(--muted);background:#f1f5f9}.tag-cloud{flex-wrap:wrap;gap:10px;display:flex}.tag-chip{border-radius:var(--r-pill);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);background:#fff;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;display:inline-flex}.tag-chip:hover{box-shadow:var(--shadow);color:var(--accent);border-color:#bfdbfe}.tag-chip .count{color:var(--muted);border-radius:var(--r-pill);background:#f1f5f9;padding:2px 8px;font-size:11px;font-weight:700}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex;overflow:hidden}.card:hover{box-shadow:var(--shadow-hover);border-color:var(--line-strong)}.card.is-read{opacity:.72}.card.is-read .title{color:var(--muted)}.card a.title{color:var(--ink)}.card a.title:hover{color:var(--accent)}.cover{aspect-ratio:16/10;color:#ffffffe6;letter-spacing:.08em;place-items:center;font-size:12px;font-weight:700;display:grid}.cover-sm{aspect-ratio:16/9}.card-body{flex-direction:column;flex:1;gap:8px;padding:18px 18px 20px;display:flex}.card h2,.card h3{margin:0;font-size:18px;font-weight:800;line-height:1.4}.card h2{font-size:22px}.excerpt{color:var(--muted);flex:1;margin:0;font-size:14px;line-height:1.65}.card-text{padding:20px}.card-text .excerpt{margin-top:4px}.card-row{grid-template-columns:120px 1fr;align-items:stretch;gap:0;display:grid}.card-row .cover{aspect-ratio:auto;min-height:100%}.stat{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);background:#fff;padding:16px}.stat .k{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700}.stat .v{font-size:var(--fs-stat);font-weight:var(--fw-stat);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .d{color:var(--ok);margin-top:4px;font-size:12px;font-weight:700}.stat .d.down{color:var(--danger)}.panel{border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow);background:#fff;padding:28px}.panel-lg{border-radius:var(--r-2xl);padding:32px}.page-head{margin-bottom:24px}.page-head h1{margin:0 0 8px;font-size:clamp(26px,3.5vw,34px);font-weight:800;line-height:1.28}.page-head p{color:var(--muted);max-width:40em;margin:0;font-size:15px;line-height:1.7}.section-title{justify-content:space-between;align-items:center;gap:12px;padding:8px 0 12px;display:flex}.section-title h2{margin:0;font-size:16px;font-weight:800}.hero-card{color:#fff;border-radius:var(--r-2xl);box-shadow:var(--shadow);background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 55%,#2563eb 100%);padding:32px 28px;position:relative;overflow:hidden}.hero-card:after{content:"";background:#ffffff14;border-radius:50%;width:220px;height:220px;position:absolute;top:-40px;right:-40px}.hero-kicker{letter-spacing:.14em;text-transform:uppercase;opacity:.75;margin:0 0 12px;font-size:12px;font-weight:700}.hero-card h1{max-width:16em;margin:0 0 12px;font-size:clamp(24px,3.6vw,34px);font-weight:800;line-height:1.3;position:relative}.hero-card p{opacity:.88;max-width:36em;margin:0 0 20px;font-size:15px;line-height:1.7;position:relative}.hero-actions{flex-wrap:wrap;gap:10px;display:flex;position:relative}.chips{flex-wrap:wrap;gap:8px;padding:18px 0 8px;display:flex}.chip{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--muted);box-shadow:var(--shadow);background:#fff;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.chip strong{color:var(--ink)}.grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.week-strip{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px;display:grid}.list-stack{gap:12px;display:grid}.year-block{margin-bottom:28px}.year-block h2{letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:14px;font-weight:800}.archive-item{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);background:#fff;grid-template-columns:88px 1fr auto;align-items:start;gap:16px;padding:16px 18px;display:grid}.archive-item:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}.archive-item .date{font-variant-numeric:tabular-nums;color:var(--muted);padding-top:2px;font-size:13px;font-weight:700}.archive-item h3{margin:0 0 4px;font-size:16px;font-weight:800;line-height:1.4}.archive-item h3 a{color:var(--ink)}.archive-item h3 a:hover{color:var(--accent)}.archive-item .mins{color:var(--muted-2);white-space:nowrap;padding-top:4px;font-size:12px;font-weight:600}.filters{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.filter{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:700}.filter.is-on,.filter:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:28px 0 8px;display:flex}.pager a,.pager span{border-radius:var(--r-pill);border:1px solid var(--line);min-width:40px;height:40px;color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.pager a:hover{color:var(--accent);border-color:#bfdbfe}.pager .is-current{background:var(--accent);color:#fff;border-color:var(--accent)}.pager .is-disabled{opacity:.4;pointer-events:none}.empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-xl);background:#fff;padding:48px 24px}.empty h2{margin:0 0 8px;font-size:20px;font-weight:800}.empty p{color:var(--muted);margin:0 0 18px;font-size:14px}.alert{border-radius:var(--r-md);align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;font-size:14px;line-height:1.55;display:flex}.alert-ok{background:var(--ok-soft);color:#065f46;border:1px solid #a7f3d0}.alert-error{background:var(--danger-soft);color:#991b1b;border:1px solid #fecaca}.alert-info{background:var(--accent-soft);color:var(--accent-ink);border:1px solid #bfdbfe}.article-shell{width:min(100% - 28px,var(--prose));margin:20px auto 64px}.article-card{border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow);background:#fff;padding:28px 28px 36px}.back{color:var(--muted);align-items:center;gap:6px;margin-bottom:18px;font-size:13px;font-weight:700;display:inline-flex}.back:hover{color:var(--accent)}.article-card h1{margin:10px 0 12px;font-size:clamp(26px,4vw,36px);font-weight:800;line-height:1.28}.byline{color:var(--muted);margin:0 0 18px;font-size:13px;font-weight:600}.deck{background:var(--accent-soft);border-radius:var(--r-md);color:var(--accent-ink);margin:0 0 24px;padding:14px 16px;font-size:14px;line-height:1.7}.prose p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink-2);margin:0 0 1.1em}.prose h2{margin:1.8em 0 .7em;font-size:20px;font-weight:800}.prose h3{margin:1.4em 0 .6em;font-size:17px;font-weight:800}.prose blockquote{background:var(--warn-soft);border-radius:var(--r-md);border-left:4px solid var(--warn);color:var(--warn-ink);margin:1.3em 0;padding:14px 16px;font-size:15px}.prose code,.prose pre{font-family:var(--font-mono)}.prose pre{color:#e2e8f0;border-radius:var(--r-md);background:#0f172a;padding:14px 16px;font-size:13px;line-height:1.55;overflow:auto}.prose table{border-collapse:collapse;border:1px solid var(--line);border-radius:12px;width:100%;margin:1.3em 0;font-size:13px;overflow:hidden}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px}.prose th{color:var(--muted);background:#f8fafc;font-size:12px;font-weight:800}.sources{border-radius:var(--r-md);border:1px solid var(--line);color:var(--muted);background:#f8fafc;margin:28px 0;padding:16px;font-size:13px}.sources h3{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:800}.cta{background:linear-gradient(135deg,#eff6ff,#ecfeff);border:1px solid #bfdbfe;border-radius:18px;margin:28px 0;padding:20px}.cta h3{margin:0 0 6px;font-size:17px;font-weight:800}.cta p{color:var(--muted);margin:0 0 12px;font-size:13px}.related{gap:10px;display:grid}.related a{border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;padding:14px 16px;font-size:14px;font-weight:700;display:block}.related a span{color:var(--muted);letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.prevnext{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.prevnext a{border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);background:#f8fafc;padding:14px 16px;font-size:13px;font-weight:700}.prevnext a span{color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.footer{color:var(--muted);padding:28px 0 48px;font-size:13px}.footer-card{border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow);background:#fff;grid-template-columns:1.4fr 1fr 1fr;gap:20px;padding:24px;display:grid}.footer strong{color:var(--ink);margin-bottom:8px;display:block}.footer a{color:var(--muted)}.footer a:hover{color:var(--accent)}.about-grid{grid-template-columns:1.2fr .8fr;align-items:start;gap:20px;display:grid}.avatar{color:#fff;background:linear-gradient(135deg,#2563eb,#06b6d4);border-radius:20px;place-items:center;width:72px;height:72px;margin-bottom:14px;font-size:22px;font-weight:800;display:grid}.checklist{margin:0;padding:0;list-style:none}.checklist li{border-bottom:1px solid var(--line);color:var(--ink-2);gap:10px;padding:10px 0;font-size:14px;display:flex}.checklist li:before{content:"✓";color:var(--ok);font-weight:800}.search-hero .input{border-radius:var(--r-xl);min-height:56px;padding:0 20px;font-size:16px}.search-meta{color:var(--muted);margin:14px 0 18px;font-size:13px;font-weight:600}.hit{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);background:#fff;padding:18px 20px}.hit:hover{box-shadow:var(--shadow);border-color:#bfdbfe}.hit h3{margin:0 0 6px;font-size:17px;font-weight:800;line-height:1.4}.hit h3 a{color:var(--ink)}.hit h3 a:hover{color:var(--accent)}.hit h3 mark,.excerpt mark{color:var(--ink);background:#fef08a;border-radius:2px;padding:0 2px}.hit .excerpt{font-size:14px}.mobile-nav{display:none}@media (width<=900px){.wrap{width:min(100% - var(--gutter-m),var(--max))}.nav{display:none}.span-7,.span-5,.span-4,.span-6,.span-8{grid-column:span 12}.week-strip,.footer-card,.about-grid,.prevnext,.card-row{grid-template-columns:1fr}.hero-card{border-radius:var(--r-xl);padding:24px 20px}.article-card{border-radius:var(--r-xl);padding:22px 18px}.archive-item{grid-template-columns:1fr;gap:6px}.archive-item .mins{display:none}.panel{padding:20px}.mobile-nav{gap:6px;display:flex}}.prose :where(ul,ol){margin:0 0 1.1em;padding-left:1.25em}.prose :where(li){margin:.25em 0}.prose :where(a){color:var(--accent);text-underline-offset:2px;text-decoration:underline}.prose :where(strong){color:var(--ink);font-weight:800}.prose :where(hr){border:0;border-top:1px solid var(--line);margin:2em 0}.prose :where(img){border-radius:var(--r-md)}.sample-note{color:#e2e8f0;letter-spacing:.04em;text-align:center;background:#0f172a;padding:8px 12px;font-size:12px;font-weight:600}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:28px 0 8px;padding:16px 0;display:flex}.page-list{align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.page-num,.page-btn{border-radius:var(--r-pill);min-width:40px;height:40px;color:var(--ink-2);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.page-num:hover,.page-btn:hover{border-color:var(--accent);color:var(--accent)}.page-num.is-current{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 4px 12px #2563eb40}.page-btn.is-disabled{opacity:.4;pointer-events:none}.page-ellipsis{color:var(--muted-2);padding:0 4px;font-weight:700}.cover-img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.cover.has-img{color:#0000;padding:0;font-size:0;overflow:hidden}.cover.has-img .cover-img{min-height:140px}.cover.has-img.cover-sm .cover-img{min-height:110px}.sample-badge{border-radius:var(--r-pill);background:var(--warn-soft);color:var(--warn-ink);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.cat-nav{flex-wrap:wrap;gap:8px;margin:12px 0 4px;display:flex}.cat-nav a{border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);color:var(--ink-2);padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none}.cat-nav a.is-on{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.ym-label{color:var(--muted);letter-spacing:.04em;margin:20px 0 10px;font-size:14px;font-weight:800}
