:root{--bg:#ffffff;--bg-soft:#f5f6f7;--bg-alt:#fafafb;--text:#0f1114;--text-2:#33363b;--meta:#6a6e75;--border:#e4e5e8;--border-strong:#d0d2d6;--red:#e2001a;--red-dark:#b30015;--radius:4px;--max-w:1180px;--sidebar-w:300px;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.65;min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none;transition:color .15s}a:hover{color:var(--red)}img{max-width:100%;height:auto}.main-content{flex:1}.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}code{font-family:SF Mono,Consolas,Courier New,monospace;background:var(--bg-soft);padding:2px 6px;border-radius:3px;font-size:.9em;color:#c7003f}pre{background:#0f1114;border-radius:var(--radius);padding:18px 20px;overflow-x:auto;margin:22px 0}pre code{background:none;padding:0;color:#e8e8e8}.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-inner{max-width:var(--max-w);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:60px}.logo{display:flex;align-items:baseline;gap:2px;font-weight:800;font-size:1.35rem;letter-spacing:-.02em;color:var(--text)}.logo:hover,.logo .logo-text{color:var(--text)}.logo .logo-accent{color:var(--red)}.logo-image-link{align-items:center}.site-logo-img{display:block;height:42px;width:auto;max-width:225px;object-fit:contain}.nav-menu{display:flex;gap:2px;flex-wrap:wrap}.nav-link{color:var(--text-2);font-size:.9rem;font-weight:600;padding:8px 12px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap}.nav-link:hover{color:var(--red)}.nav-link.active{color:var(--text);border-bottom-color:var(--red)}.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:4px}.menu-toggle span{width:22px;height:2px;background:var(--text);display:block}.hero{border-bottom:1px solid var(--border);background:#fff}.hero-inner{max-width:var(--max-w);margin:0 auto;padding:38px 24px 30px}.hero-badge{display:inline-block;color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.hero h1{font-size:2.1rem;font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--text)}.hero-desc{color:var(--meta);font-size:1rem;margin-top:10px;max-width:640px}.hero-stats{display:flex;gap:34px;margin-top:22px}.stat{display:flex;flex-direction:column}.stat-num{font-size:1.4rem;font-weight:800;color:var(--text);letter-spacing:-.01em}.stat-label{font-size:.78rem;color:var(--meta);margin-top:2px}.category-nav{padding:34px 0 8px}.section-title{font-size:1.05rem;font-weight:800;color:var(--text);margin-bottom:16px;padding-left:11px;border-left:4px solid var(--red)}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cat-card{display:block;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:#fff;transition:border-color .15s,box-shadow .15s}.cat-card:hover{border-color:var(--red);box-shadow:0 2px 12px #0000000d}.cat-icon{display:none}.cat-card h3{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:4px}.cat-card:hover h3{color:var(--red)}.cat-card p{font-size:.82rem;color:var(--meta);line-height:1.5}.latest-posts{padding:34px 0 20px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;border-bottom:2px solid var(--text);padding-bottom:8px}.section-head h2{font-size:1.25rem;font-weight:800;color:var(--text);letter-spacing:-.01em}.section-head a{font-size:.85rem;font-weight:600;color:var(--red)}.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}.post-card{border-bottom:1px solid var(--border);padding:20px 0}.post-card>a{display:block}.post-card-meta{display:flex;align-items:center;gap:12px;margin-bottom:8px}.post-cat{color:var(--red);font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.post-card-meta time{color:var(--meta);font-size:.76rem}.post-card-title{font-size:1.18rem;font-weight:800;line-height:1.32;letter-spacing:-.01em;color:var(--text);margin-bottom:7px}.post-card>a:hover .post-card-title{color:var(--red)}.post-card-excerpt{color:var(--text-2);font-size:.9rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.tag-pill{display:inline-block;font-size:.8rem;color:var(--text-2);background:var(--bg-soft);border:1px solid var(--border);padding:3px 9px;border-radius:999px;transition:all .15s}.tag-pill:hover{color:#fff;background:var(--red);border-color:var(--red)}.tag-pill.small{font-size:.74rem;padding:2px 8px}.pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:36px 0 10px}.page-link{font-size:.9rem;font-weight:700;color:var(--text);border:1px solid var(--border-strong);padding:8px 16px;border-radius:var(--radius)}.page-link:hover{color:#fff;background:var(--red);border-color:var(--red)}.page-info{font-size:.85rem;color:var(--meta)}.post-detail{padding:30px 0 10px}.post-layout{max-width:var(--max-w);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-w);gap:48px}.post-main{min-width:0;max-width:760px}.post-header{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:26px}.post-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.post-cat-link{color:var(--red);font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.post-meta time{color:var(--meta);font-size:.82rem}.post-updated{color:var(--meta);font-size:.82rem}.post-header h1{font-size:2rem;font-weight:800;line-height:1.22;letter-spacing:-.02em;color:var(--text)}.post-tags{margin-top:16px;display:flex;flex-wrap:wrap;gap:7px}.post-content{font-size:1.06rem;line-height:1.85;color:var(--text-2)}.post-content p{margin:0 0 20px}.post-content h2{font-size:1.4rem;font-weight:800;color:var(--text);margin:38px 0 14px;letter-spacing:-.01em}.post-content h3{font-size:1.15rem;font-weight:800;color:var(--text);margin:28px 0 12px}.post-content a{color:var(--red);border-bottom:1px solid rgba(226,0,26,.3)}.post-content a:hover{border-bottom-color:var(--red)}.post-content ul,.post-content ol{margin:0 0 20px;padding-left:24px}.post-content li{margin-bottom:8px}.post-content strong{color:var(--text);font-weight:800}.post-content blockquote{border-left:4px solid var(--red);background:var(--bg-soft);padding:14px 20px;margin:24px 0;color:var(--text);border-radius:0 var(--radius) var(--radius) 0}.post-content blockquote p{margin:0}.post-content img{border-radius:var(--radius);margin:22px 0}.post-content table{width:100%;border-collapse:collapse;margin:24px 0;font-size:.94rem;display:block;overflow-x:auto}.post-content th,.post-content td{border:1px solid var(--border);padding:9px 12px;text-align:left}.post-content th{background:var(--bg-soft);font-weight:700;color:var(--text)}.post-content hr{border:none;border-top:1px solid var(--border);margin:32px 0}.post-byline{color:var(--meta);font-size:.86rem;margin-top:10px;line-height:1.6}.post-cover{margin:0 0 26px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-soft)}.post-cover img{display:block;width:100%;height:auto;margin:0;border-radius:0}.source-ref{display:block;margin:30px 0 0;padding:14px 16px;border:1px solid var(--border);border-left:4px solid var(--red);border-radius:var(--radius);background:var(--bg-soft);color:var(--meta);font-size:.86rem;line-height:1.7}.source-ref a.source-ref-cocoloop{color:inherit;border-bottom:0;text-decoration:none;font:inherit}.source-ref a.source-ref-cocoloop:hover{color:inherit;border-bottom:0;text-decoration:none}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--border)}.post-nav a{display:block;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .15s}.post-nav a:hover{border-color:var(--red)}.post-nav .next-post{text-align:right}.post-nav span{display:block;font-size:.76rem;color:var(--meta);margin-bottom:5px}.post-nav strong{font-size:.94rem;font-weight:700;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-nav a:hover strong{color:var(--red)}.post-sidebar{min-width:0}.post-sidebar.sticky{position:sticky;top:80px;align-self:start}.sidebar-widget{border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:20px;background:#fff}.sidebar-widget h4{font-size:.92rem;font-weight:800;color:var(--text);margin-bottom:14px;padding-left:9px;border-left:3px solid var(--red)}.sidebar-posts{list-style:none}.sidebar-posts li{padding:9px 0;border-bottom:1px solid var(--border);font-size:.88rem;line-height:1.45}.sidebar-posts li:last-child{border-bottom:none}.sidebar-posts a{color:var(--text-2)}.sidebar-posts a:hover{color:var(--red)}.sidebar-tags{display:flex;flex-wrap:wrap;gap:7px}.cocoloop-widget{background:var(--bg-soft)}.cocoloop-widget p{font-size:.86rem;color:var(--meta);margin-bottom:12px}.cta-btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;padding:9px 18px;border-radius:var(--radius);font-size:.9rem}.cta-btn:hover{background:var(--red-dark);color:#fff}.cta-btn.small{padding:7px 14px;font-size:.84rem}.archive-page,.tag-page,.tags-cloud-page{padding:34px 0}.page-title{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.page-desc{color:var(--meta);font-size:.9rem;margin-top:6px;margin-bottom:26px}.archive-year{font-size:1.2rem;font-weight:800;color:var(--red);margin:28px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.archive-item{display:flex;gap:16px;padding:9px 0;border-bottom:1px solid var(--border);align-items:baseline}.archive-item time{color:var(--meta);font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:44px}.archive-item a{color:var(--text-2);font-size:.98rem}.archive-item a:hover{color:var(--red)}.tag-cloud{display:flex;flex-wrap:wrap;gap:10px}.tag-cloud a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);padding:7px 13px;border-radius:999px;font-size:.9rem;color:var(--text-2)}.tag-cloud a:hover{color:#fff;background:var(--red);border-color:var(--red)}.tag-cloud .count{font-size:.74rem;color:var(--meta);background:var(--bg-soft);padding:0 6px;border-radius:999px}.tag-cloud a:hover .count{color:var(--red);background:#fff}.site-footer{background:var(--bg-soft);border-top:1px solid var(--border);margin-top:50px}.footer-inner{max-width:var(--max-w);margin:0 auto;padding:44px 24px 24px}.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:32px}.footer-col h4{font-size:.92rem;font-weight:800;color:var(--text);margin-bottom:14px}.footer-desc{font-size:.85rem;color:var(--meta);line-height:1.7;max-width:320px}.footer-col ul{list-style:none}.footer-col li{margin-bottom:9px}.footer-col a{font-size:.86rem;color:var(--text-2)}.footer-col a:hover{color:var(--red)}.footer-bottom{margin-top:34px;padding-top:20px;border-top:1px solid var(--border)}.footer-bottom p{font-size:.82rem;color:var(--meta);margin-bottom:4px}.footer-note{font-size:.78rem}@media(max-width:900px){.post-layout{grid-template-columns:1fr;gap:36px}.post-sidebar.sticky{position:static}.cat-grid{grid-template-columns:repeat(2,1fr)}.footer-cols{grid-template-columns:1fr 1fr;gap:26px}}@media(max-width:680px){.header-inner{height:48px}.site-logo-img{height:26px;max-width:139px}.post-cover{margin-bottom:20px}.menu-toggle{display:flex}.nav-menu{display:none;position:absolute;top:48px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);flex-direction:column;padding:8px 16px;gap:0;box-shadow:0 8px 20px #0000000f}.nav-menu.open{display:flex}.nav-link{padding:11px 4px;border-bottom:1px solid var(--border);width:100%}.nav-link.active{border-bottom:1px solid var(--border)}.post-grid{grid-template-columns:1fr;gap:0}.hero h1{font-size:1.65rem}.post-header h1{font-size:1.5rem}.hero-stats{gap:24px}.post-nav{grid-template-columns:1fr}.post-nav .next-post{text-align:left}.footer-cols{grid-template-columns:1fr}.post-content{font-size:1.02rem}}
