:root{--font-sans: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "Cascadia Code", "JetBrains Mono", Consolas, monospace;--bg-0: #f7f8fc;--bg-1: #eef2f8;--bg-2: #e4eaf4;--surface: rgba(255, 255, 255, .78);--surface-strong: #ffffff;--surface-border: rgba(24, 39, 75, .1);--ink: #152238;--ink-soft: #4a5a73;--ink-muted: #6b7a92;--accent: #4f46e5;--accent-2: #0d9488;--accent-3: #7c3aed;--accent-glow: rgba(79, 70, 229, .18);--teal-glow: rgba(13, 148, 136, .16);--danger: #dc2626;--warn: #d97706;--ok: #059669;--shadow-sm: 0 8px 24px rgba(21, 34, 56, .06);--shadow-md: 0 18px 50px rgba(21, 34, 56, .1);--radius-sm: 12px;--radius-md: 18px;--radius-lg: 28px;--max-w: 1120px;--nav-h: 72px;--ease-out: cubic-bezier(.22, 1, .36, 1);--grid-line: rgba(79, 70, 229, .06)}@media(prefers-color-scheme:light){:root{color-scheme:light}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-sans);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,var(--accent-glow),transparent 55%),radial-gradient(900px 500px at 100% 0%,var(--teal-glow),transparent 50%),linear-gradient(180deg,var(--bg-0),var(--bg-1) 40%,var(--bg-0));line-height:1.6;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);animation:grid-drift 40s linear infinite}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button,input,select{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:min(100% - 2rem,var(--max-w));margin-inline:auto}.stack{display:grid;gap:1rem}.stack-lg{display:grid;gap:2rem}.muted{color:var(--ink-soft)}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .7rem;border-radius:999px;background:#4f46e514;color:var(--accent);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}h1,h2,h3{line-height:1.15;letter-spacing:-.03em;margin:0}p{margin:0}@keyframes grid-drift{0%{transform:translateZ(0)}to{transform:translate3d(48px,48px,0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:before{animation:none}}.site-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(16px);background:#f7f8fcc7;border-bottom:1px solid var(--surface-border)}.nav{min-height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;font-weight:700}.brand-mark{width:2rem;height:2rem;border-radius:.75rem;background:linear-gradient(135deg,var(--accent),var(--accent-3)),linear-gradient(315deg,var(--accent-2),transparent);box-shadow:0 8px 20px var(--accent-glow)}.nav-links{display:flex;flex-wrap:wrap;gap:.35rem}.nav-link{padding:.45rem .8rem;border-radius:999px;color:var(--ink-soft);transition:background .2s var(--ease-out),color .2s var(--ease-out)}.nav-link:hover,.nav-link[aria-current=page]{background:#4f46e514;color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);backdrop-filter:blur(18px)}.panel-pad{padding:1.25rem}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.entry-card{position:relative;overflow:hidden;padding:1.35rem;border-radius:var(--radius-md);border:1px solid var(--surface-border);background:linear-gradient(160deg,#ffffffeb,#ffffffb3);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s var(--ease-out);transform-style:preserve-3d}.entry-card:after{content:"";position:absolute;inset:auto -20% -40% auto;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,var(--accent-glow),transparent 70%);pointer-events:none}.entry-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:#4f46e540}.entry-card h3{font-size:1.25rem;margin-bottom:.35rem}.entry-card .meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#4a5a7314;color:var(--ink-soft)}.badge.ok{background:#0596691f;color:var(--ok)}.badge.warn{background:#d977061f;color:var(--warn)}.badge.accent{background:#4f46e51a;color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem 1.1rem;border-radius:999px;border:1px solid transparent;font-weight:600;cursor:pointer;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s}.btn-primary{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-3));box-shadow:0 12px 28px var(--accent-glow)}.btn-primary:hover{transform:translateY(-2px)}.btn-ghost{background:#ffffffb3;border-color:var(--surface-border);color:var(--ink)}.hero{padding:4.5rem 0 2.5rem}.hero-layout{display:grid;gap:2rem;align-items:center}@media(min-width:900px){.hero-layout{grid-template-columns:1.3fr .9fr}}.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);margin:.8rem 0 1rem}.hero-panel{padding:1.4rem;border-radius:var(--radius-lg);background:linear-gradient(145deg,#ffffffeb,#ffffffa6),radial-gradient(circle at top right,var(--teal-glow),transparent 50%);border:1px solid var(--surface-border);box-shadow:var(--shadow-md)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.2rem}.stat{padding:.85rem;border-radius:var(--radius-sm);background:#ffffffb3;border:1px solid var(--surface-border)}.stat strong{display:block;font-size:1.2rem}.section{padding:2.5rem 0}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.field{min-width:min(100%,220px);padding:.7rem .9rem;border-radius:999px;border:1px solid var(--surface-border);background:#ffffffd9;color:var(--ink)}.site-footer{padding:2.5rem 0 3rem;color:var(--ink-muted);border-top:1px solid var(--surface-border);margin-top:2rem}.prose{max-width:72ch}.prose :is(h1,h2,h3){margin:1.6rem 0 .7rem}.prose p,.prose ul,.prose ol,.prose pre{margin:0 0 1rem}.prose pre{overflow:auto;padding:1rem;border-radius:var(--radius-sm);background:#0f172a;color:#e2e8f0;font-family:var(--font-mono);font-size:.9rem}.prose code{font-family:var(--font-mono);font-size:.92em}.prose :not(pre)>code{padding:.1rem .35rem;border-radius:.35rem;background:#4f46e514}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:.15em}.post-list{display:grid;gap:1rem}.post-item{display:grid;gap:.4rem;padding:1.2rem 1.3rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.reveal.is-visible{opacity:1;transform:none}.stagger>.reveal:nth-child(1){transition-delay:.05s}.stagger>.reveal:nth-child(2){transition-delay:.12s}.stagger>.reveal:nth-child(3){transition-delay:.19s}.stagger>.reveal:nth-child(4){transition-delay:.26s}.stagger>.reveal:nth-child(5){transition-delay:.33s}.stagger>.reveal:nth-child(6){transition-delay:.4s}.pulse-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--ok);box-shadow:0 0 #05966973;animation:pulse 2.4s ease-out infinite}.pointer-glow{position:relative;isolation:isolate}.pointer-glow:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%),rgba(79,70,229,.14),transparent 45%);opacity:0;transition:opacity .25s ease;z-index:-1;pointer-events:none}.pointer-glow:hover:before{opacity:1}@keyframes pulse{0%{box-shadow:0 0 #05966966}70%{box-shadow:0 0 0 10px #05966900}to{box-shadow:0 0 #05966900}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.pulse-dot{animation:none}.entry-card,.btn-primary{transition:none}.entry-card:hover,.btn-primary:hover{transform:none}}
