﻿:root{color-scheme:light;--bg: #ffffff;--bg-soft: #f6f7fb;--surface: #ffffff;--surface-2: #f2f3f8;--header-bg: rgba(255, 255, 255, 0.82);--text: #171923;--text-soft: #454c5c;--text-muted: #5c6473;--border: #e7e9f0;--border-strong: #d6d9e4;--accent: #4f46e5;--accent-hover: #4338ca;--accent-2: #9333ea;--accent-soft: rgba(79, 70, 229, 0.09);--accent-contrast: #ffffff;--success: #166534;--success-soft: rgba(21, 128, 61, 0.1);--info: #2563eb;--info-soft: rgba(37, 99, 235, 0.1);--warning: #b45309;--warning-soft: rgba(180, 83, 9, 0.12);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, 0.1);--code-bg: #f1f2f7;--code-color: #c2255c;--code-block-bg: #f7f7fa;--shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, 0.07), 0 1px 2px rgba(16, 24, 40, 0.04);--shadow-md: 0 6px 16px -6px rgba(16, 24, 40, 0.14), 0 2px 6px -2px rgba(16, 24, 40, 0.06);--shadow-lg: 0 20px 40px -18px rgba(16, 24, 40, 0.28), 0 8px 16px -10px rgba(16, 24, 40, 0.12);--radius-xs: 6px;--radius-sm: 9px;--radius: 14px;--radius-lg: 20px;--radius-full: 999px;--max-width: 1040px;--content-width: 760px;--header-height: 64px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;--font-mono: "Cascadia Mono", ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", "Roboto Mono", Consolas, monospace;--ease: cubic-bezier(0.22, 0.61, 0.36, 1)}[data-theme=dark]{color-scheme:dark;--bg: #0f1115;--bg-soft: #151922;--surface: #141821;--surface-2: #1b212c;--header-bg: rgba(15, 17, 21, 0.78);--text: #e9ebf2;--text-soft: #b9c0cf;--text-muted: #949bab;--border: #242a36;--border-strong: #333b4a;--accent: #8b8cf5;--accent-hover: #a5a6ff;--accent-2: #c084fc;--accent-soft: rgba(139, 140, 245, 0.14);--accent-contrast: #10121a;--success: #4ade80;--success-soft: rgba(74, 222, 128, 0.12);--info: #60a5fa;--info-soft: rgba(96, 165, 250, 0.12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, 0.12);--danger: #f87171;--danger-soft: rgba(248, 113, 113, 0.12);--code-bg: #1b212c;--code-color: #f0a6c0;--code-block-bg: #12161e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);--shadow-md: 0 8px 20px -8px rgba(0, 0, 0, 0.6), 0 2px 6px -2px rgba(0, 0, 0, 0.4);--shadow-lg: 0 24px 48px -20px rgba(0, 0, 0, 0.75), 0 8px 18px -12px rgba(0, 0, 0, 0.5)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0f1115;--bg-soft: #151922;--surface: #141821;--surface-2: #1b212c;--header-bg: rgba(15, 17, 21, 0.78);--text: #e9ebf2;--text-soft: #b9c0cf;--text-muted: #949bab;--border: #242a36;--border-strong: #333b4a;--accent: #8b8cf5;--accent-hover: #a5a6ff;--accent-2: #c084fc;--accent-soft: rgba(139, 140, 245, 0.14);--accent-contrast: #10121a;--success: #4ade80;--success-soft: rgba(74, 222, 128, 0.12);--info: #60a5fa;--info-soft: rgba(96, 165, 250, 0.12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, 0.12);--danger: #f87171;--danger-soft: rgba(248, 113, 113, 0.12);--code-bg: #1b212c;--code-color: #f0a6c0;--code-block-bg: #12161e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.45);--shadow-md: 0 8px 20px -8px rgba(0, 0, 0, 0.6), 0 2px 6px -2px rgba(0, 0, 0, 0.4);--shadow-lg: 0 24px 48px -20px rgba(0, 0, 0, 0.75), 0 8px 18px -12px rgba(0, 0, 0, 0.5)}}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-height:100vh;display:flex;flex-direction:column;font-family:var(--font-sans);font-size:1rem;line-height:1.75;color:var(--text);background:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color .25s var(--ease),color .25s var(--ease)}::selection{background:var(--accent);color:var(--accent-contrast)}img,svg,video{max-width:100%;height:auto}img{border-radius:var(--radius-sm)}a{color:var(--accent);text-decoration:none;transition:color .18s var(--ease)}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}button{font:inherit;color:inherit}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.main-content{flex:1;width:100%;padding-top:2.5rem;padding-bottom:5rem}.skip-link{position:fixed;top:-4rem;left:1rem;z-index:2000;padding:.6rem 1.1rem;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-contrast);font-weight:600;box-shadow:var(--shadow-md);transition:top .2s var(--ease)}.skip-link:focus{top:1rem;color:var(--accent-contrast)}.reading-progress{position:fixed;top:0;left:0;z-index:300;width:100%;height:3px;background:linear-gradient(90deg, var(--accent), var(--accent-2));transform:scaleX(0);transform-origin:0 50%;pointer-events:none}.site-header{position:sticky;top:0;z-index:100;background:var(--header-bg);border-bottom:1px solid var(--border);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);transition:background-color .25s var(--ease),border-color .25s var(--ease)}.site-header nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--header-height)}.nav-left,.nav-right{display:flex;align-items:center}.nav-left{gap:.6rem;min-width:0}.site-logo{display:inline-flex;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--text);white-space:nowrap}.site-logo:hover{color:var(--accent)}.site-logo-mark{display:inline-grid;place-items:center;width:2rem;height:2rem;font-size:1.05rem;border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid var(--border)}.nav-links{display:flex;align-items:center;gap:.35rem;list-style:none}.nav-links a{position:relative;display:inline-block;padding:.4rem .65rem;border-radius:var(--radius-sm);color:var(--text-soft);font-size:.925rem;font-weight:500;transition:color .18s var(--ease),background-color .18s var(--ease)}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.nav-links a[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;padding:.4rem;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);background:rgba(0,0,0,0);cursor:pointer;transition:background-color .18s var(--ease),border-color .18s var(--ease)}.hamburger:hover{background:var(--surface-2);border-color:var(--border)}.hamburger span{display:block;width:20px;height:2px;border-radius:2px;background:var(--text);transform-origin:center;transition:transform .28s var(--ease),opacity .18s var(--ease)}.hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;font-size:1.05rem;line-height:1;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);cursor:pointer;transition:transform .25s var(--ease),border-color .18s var(--ease),background-color .18s var(--ease)}.theme-toggle:hover{transform:rotate(-12deg);border-color:var(--accent)}.theme-toggle .light-icon,.theme-toggle .dark-icon{display:none}[data-theme=dark] .theme-toggle .dark-icon,:root:not([data-theme=dark]) .theme-toggle .light-icon{display:inline}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .theme-toggle .light-icon{display:none}:root:not([data-theme=light]) .theme-toggle .dark-icon{display:inline}}.site-footer{padding:2.5rem 0;border-top:1px solid var(--border);background:var(--bg-soft);text-align:center;color:var(--text-muted);font-size:.9rem}.site-footer .copyright{margin-bottom:.35rem}.site-footer .powered-by{font-size:.82rem}.site-footer a{font-weight:500}.hero{position:relative;overflow:hidden;margin-bottom:3.5rem;padding:4.5rem 1.5rem 3rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-soft);text-align:center}.hero-glow{position:absolute;inset:-60% -10% auto -10%;height:160%;background:radial-gradient(38% 55% at 28% 32%, var(--accent-soft), rgba(0,0,0,0) 70%),radial-gradient(34% 50% at 74% 46%, rgba(147,51,234,.1), rgba(0,0,0,0) 72%);pointer-events:none}.hero-content{position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:1.25rem;padding:.35rem .9rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-soft);font-size:.82rem;font-weight:500}.hero-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.2;letter-spacing:-.025em}.hero-title::after{content:"";display:block;width:64px;height:4px;margin:1.1rem auto 0;border-radius:var(--radius-full);background:linear-gradient(90deg, var(--accent), var(--accent-2))}.hero-description{max-width:34rem;margin:1.1rem auto 0;color:var(--text-soft);font-size:1.05rem;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.9rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.35rem;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-full);font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{color:#fff;box-shadow:var(--shadow-md)}.btn-ghost{border-color:var(--border-strong);background:var(--surface);color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.hero-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem;margin-top:2.75rem}.stat-card{display:flex;flex-direction:column;align-items:center;min-width:96px;padding:.85rem 1.35rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.stat-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-md)}.stat-number{font-size:1.5rem;font-weight:800;line-height:1.2;background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);color:var(--accent)}.stat-label{margin-top:.15rem;color:var(--text-muted);font-size:.8rem}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.section-header h2{display:flex;align-items:center;gap:.5rem;font-size:1.35rem;font-weight:700;letter-spacing:-.01em}.section-header h2::before{content:"";width:4px;height:1.15em;border-radius:var(--radius-full);background:linear-gradient(180deg, var(--accent), var(--accent-2))}.section-header-emoji{font-size:1.05rem}.section-link{flex-shrink:0;font-size:.875rem;font-weight:600}.home-section,.recent-posts{margin-bottom:3rem}.post-card-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.25rem}.post-card{position:relative;display:flex;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}.post-card:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--shadow-lg)}.post-card-accent{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg, var(--accent), var(--accent-2));transform:scaleX(0);transform-origin:0 50%;transition:transform .3s var(--ease)}.post-card:hover .post-card-accent{transform:scaleX(1)}.post-card-grid>.post-card:last-child:nth-child(odd){grid-column:1/-1}.post-card-body{display:flex;flex-direction:column;width:100%;padding:1.5rem}.post-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.7rem;color:var(--text-muted);font-size:.78rem}.post-card-meta time,.post-card-meta .post-reading-time{display:inline-flex;align-items:center;gap:.3rem}.post-card-title{margin-bottom:.6rem;font-size:1.22rem;font-weight:700;line-height:1.4;letter-spacing:-.01em}.post-card-title a{color:var(--text)}.post-card-title a:hover{color:var(--accent)}.post-card-summary{flex:1;margin-bottom:1.1rem;color:var(--text-soft);font-size:.92rem;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:auto}.post-card-tags{display:flex;flex-wrap:wrap;gap:.35rem}.post-list{list-style:none}.post-item{padding:1.65rem 1rem;margin:0 -1rem;border-bottom:1px solid var(--border);border-radius:var(--radius);transition:background-color .18s var(--ease)}.post-item:hover{background:var(--bg-soft)}.post-item:last-child{border-bottom:none}.post-title{margin-bottom:.55rem;font-size:1.3rem;font-weight:700;line-height:1.4;letter-spacing:-.01em}.post-title a{color:var(--text)}.post-title a:hover{color:var(--accent)}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .7rem;margin-bottom:.7rem;color:var(--text-muted);font-size:.83rem}.post-meta time{font-weight:500}.post-word-count::before{content:"·";margin-right:.45rem}.post-categories,.post-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.post-updated{color:var(--text-muted);font-size:.95em}.post-summary{margin-bottom:.85rem;color:var(--text-soft);font-size:.94rem;line-height:1.75}.read-more{font-size:.875rem;font-weight:600}.read-more::after{content:" →";transition:margin-left .18s var(--ease);display:inline-block}.read-more:hover::after{margin-left:.2rem}.no-posts{padding:3.5rem 0;text-align:center;color:var(--text-muted);font-size:1.05rem}.tag,.category-tag{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:var(--radius-full);font-size:.76rem;font-weight:500;line-height:1.6;transition:background-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.tag{background:var(--accent-soft);color:var(--accent)}.tag:hover{background:var(--accent);color:var(--accent-contrast);transform:translateY(-1px)}.category-tag{background:var(--success-soft);color:var(--success)}.category-tag:hover{background:var(--success);color:#fff;transform:translateY(-1px)}.category-card-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));gap:1rem}.category-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);color:var(--text);transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.category-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow-md);color:var(--text)}.category-card-icon{font-size:1.6rem;line-height:1}.category-card-name{font-size:1rem;font-weight:600}.category-card-count{padding:.1rem .55rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.75rem}.series-mini-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:1rem}.series-mini-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);color:var(--text);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.series-mini-card:hover{transform:translateX(3px);box-shadow:var(--shadow-md);color:var(--text)}.series-mini-name{font-weight:600}.series-mini-count{flex-shrink:0;color:var(--text-muted);font-size:.8rem}.mini-tag-grid{display:flex;flex-wrap:wrap;gap:.55rem}.mini-tag-item{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .8rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-soft);font-size:.85rem;font-weight:500;transition:transform .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),background-color .18s var(--ease)}.mini-tag-item:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mini-tag-name{font-weight:600}.mini-tag-count{padding:.02rem .4rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.72rem}.categories-tree,.taxonomy-list,.term-page,.category-single,.archive-page,.series-list-page,.series-single-page,.section-page{max-width:var(--content-width);margin:0 auto}.tree-container{padding-left:0}.tree-branch{margin-bottom:.35rem}.tree-category{display:flex;align-items:center;gap:.55rem;padding:.7rem .95rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);transition:background-color .18s var(--ease),box-shadow .18s var(--ease)}.tree-category:hover{background:var(--surface);box-shadow:var(--shadow-sm)}.tree-category-icon{font-size:1.15rem;line-height:1}.tree-category-name{color:var(--text);font-size:1.02rem;font-weight:700}.tree-category-name:hover{color:var(--accent)}.tree-category-count{margin-left:auto;padding:.1rem .55rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.75rem;white-space:nowrap}.tree-posts{position:relative;padding-left:1.6rem}.tree-post{position:relative;padding:.5rem .6rem .5rem 1rem;border-radius:var(--radius-sm);transition:background-color .15s var(--ease)}.tree-post:hover{background:var(--bg-soft)}.tree-post::before{content:"";position:absolute;left:-.9rem;top:1.1rem;width:.9rem;height:1.5px;background:var(--border-strong)}.tree-post::after{content:"";position:absolute;left:-.9rem;top:0;bottom:0;width:1.5px;background:var(--border-strong)}.tree-post:first-child::after{top:1.1rem}.tree-post:last-child::after{bottom:auto;height:1.1rem}.tree-post:first-child:last-child::after{display:none}.tree-post-body{min-width:0}.tree-post-title{color:var(--text);font-size:.95rem;font-weight:600}.tree-post-title:hover{color:var(--accent)}.tree-post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;margin-top:.15rem;color:var(--text-muted);font-size:.76rem}.tree-post-tags{display:inline-flex;flex-wrap:wrap;gap:.3rem}.tree-post-meta .tag{font-size:.7rem;padding:.02rem .42rem}.tree-post-desc{margin-top:.2rem;max-width:44em;overflow:hidden;color:var(--text-soft);font-size:.84rem;line-height:1.6;text-overflow:ellipsis;white-space:nowrap}.tree-empty{padding:.2rem 0;color:var(--text-muted);font-size:.85rem;font-style:italic}.tag-cloud{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;padding:.5rem 0 2rem}.tag-cloud-item{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:calc(.85rem + min(var(--tag-count),5)*.08rem);font-weight:500;transition:transform .18s var(--ease),border-color .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease)}.tag-cloud-item:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tag-cloud-name{font-weight:600}.tag-cloud-count{padding:.05rem .5rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.75rem;white-space:nowrap}.page-header{padding:1rem 0 2rem;text-align:center}.page-header h1,.page-header-lined h1{font-size:clamp(1.7rem,4vw,2.2rem);font-weight:800;letter-spacing:-.02em}.page-header h1{margin-bottom:.5rem}.page-description{color:var(--text-muted);font-size:.95rem}.page-header-lined{padding:1rem 0 2rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border);text-align:center}.page-header-lined h1{margin-bottom:.5rem}.page-meta{color:var(--text-muted);font-size:.9rem}.page-meta strong{color:var(--text);font-weight:700}.page-meta-sub{margin-top:.1rem;color:var(--text-muted);font-size:.84rem}.back-nav{margin:2.5rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}.back-nav a{font-size:.92rem;font-weight:600}.category-single-icon{font-size:2.75rem;line-height:1;margin-bottom:.6rem}.post-full{max-width:var(--max-width);margin:0 auto}.post-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.post-header .post-title{margin-bottom:1rem;font-size:clamp(1.7rem,4vw,2.15rem);font-weight:800;line-height:1.3;letter-spacing:-.02em}.post-header .post-meta{margin-bottom:0}.post-body-layout{position:relative}.post-toc{display:none}.post-toc-title{display:flex;align-items:center;gap:.4rem;margin-bottom:.75rem;color:var(--text);font-size:.88rem;font-weight:700}.post-toc-list,.post-toc-sublist{list-style:none}.post-toc-sublist{margin:.15rem 0 .15rem .15rem;padding-left:.7rem;border-left:1.5px solid var(--border)}.post-toc-item{padding:.1rem 0}.post-toc-item a{display:block;padding:.2rem .5rem;border-radius:var(--radius-xs);color:var(--text-soft);font-size:.83rem;line-height:1.45;transition:color .15s var(--ease),background-color .15s var(--ease)}.post-toc-item a:hover{color:var(--accent);background:var(--accent-soft)}.post-toc-item a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.post-toc-h1>a{color:var(--text);font-weight:600}.post-toc-h2>a{font-weight:500}.post-toc-h3>a{font-size:.79rem;color:var(--text-muted)}.post-toc-toggle,.post-toc-backdrop{display:none}@media (min-width: 1080px){.post-body-layout{display:flex;gap:2.5rem;align-items:flex-start}.post-toc{display:block;position:sticky;top:calc(var(--header-height) + 1.5rem);flex-shrink:0;width:230px;max-height:calc(100vh - var(--header-height) - 3rem);overflow-y:auto;padding:1rem .75rem 1rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);scrollbar-width:thin}.post-content{flex:1;min-width:0}}.post-content,.section-content{font-size:1.05rem;line-height:1.85;color:var(--text)}.post-content{max-width:var(--content-width)}.post-content h1,.section-content h1,.post-content h2,.section-content h2,.post-content h3,.section-content h3,.post-content h4,.section-content h4{position:relative;font-weight:700;line-height:1.4;letter-spacing:-.01em;scroll-margin-top:calc(var(--header-height) + 1.5rem)}.post-content h1,.section-content h1{margin:2.5rem 0 1rem;font-size:1.7rem}.post-content h2,.section-content h2{margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);font-size:1.45rem}.post-content h3,.section-content h3{margin:1.9rem 0 .75rem;font-size:1.2rem}.post-content h4,.section-content h4{margin:1.5rem 0 .6rem;font-size:1.05rem}.post-content p,.section-content p{margin-bottom:1.1rem}.post-content ul,.post-content ol,.section-content ul,.section-content ol{margin:0 0 1.1rem 1.4rem}.post-content li,.section-content li{margin-bottom:.35rem}.post-content li>ul,.post-content li>ol,.section-content li>ul,.section-content li>ol{margin-top:.35rem}.post-content blockquote,.section-content blockquote{margin:1.75rem 0;padding:.9rem 1.25rem;border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-soft);color:var(--text-soft)}.post-content blockquote p:last-child,.section-content blockquote p:last-child{margin-bottom:0}.post-content hr,.section-content hr{margin:2.5rem 0;border:none;border-top:1px solid var(--border)}.post-content a,.section-content a{text-decoration:underline;text-decoration-color:var(--accent-soft);text-decoration-thickness:1.5px;text-underline-offset:3px}.post-content a:hover,.section-content a:hover{text-decoration-color:currentColor}.post-content strong,.section-content strong{font-weight:700}.post-content .zola-anchor,.section-content .zola-anchor{margin-left:.45rem;color:var(--accent);font-size:.78em;text-decoration:none;opacity:0;transition:opacity .15s var(--ease)}.post-content :is(h1,h2,h3,h4):hover .zola-anchor,.section-content :is(h1,h2,h3,h4):hover .zola-anchor,.post-content .zola-anchor:focus-visible,.section-content .zola-anchor:focus-visible{opacity:.75}.post-content code,.section-content code{padding:.15rem .4rem;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--code-bg);color:var(--code-color);font-family:var(--font-mono);font-size:.875em;word-break:break-word}.post-content pre,.section-content pre{position:relative;margin:1.75rem 0;padding:1.15rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--code-block-bg);overflow-x:auto;-webkit-overflow-scrolling:touch}.post-content pre.giallo,.section-content pre.giallo{color-scheme:inherit !important}.post-content pre:has(code[data-lang]),.section-content pre:has(code[data-lang]){padding-top:2.5rem}.post-content pre code,.section-content pre code{display:block;padding:0;border:none;background:rgba(0,0,0,0);color:inherit;font-size:.875rem;line-height:1.65;word-break:normal}.post-content pre code[data-lang]::before,.section-content pre code[data-lang]::before{content:attr(data-lang);position:absolute;top:.7rem;left:1rem;padding:.05rem .45rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-family:var(--font-sans);font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.copy-btn{position:absolute;top:.6rem;right:.6rem;z-index:2;display:inline-flex;align-items:center;padding:.28rem .65rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-muted);font-family:var(--font-sans);font-size:.74rem;line-height:1.4;white-space:nowrap;cursor:pointer;opacity:0;transition:opacity .18s var(--ease),color .18s var(--ease),background-color .18s var(--ease),border-color .18s var(--ease)}.post-content pre:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{color:var(--text);border-color:var(--border-strong)}.copy-btn.copied{border-color:var(--success);background:var(--success-soft);color:var(--success);opacity:1}@media (hover: none){.copy-btn{opacity:1}}.post-content table,.section-content table{width:100%;margin:1.75rem 0;border-collapse:collapse;font-size:.92rem}.post-content th,.post-content td,.section-content th,.section-content td{padding:.7rem .9rem;border:1px solid var(--border);text-align:left}.post-content th,.section-content th{background:var(--bg-soft);font-weight:600}.post-content tbody tr:nth-child(even),.section-content tbody tr:nth-child(even){background:var(--bg-soft)}.post-content img,.section-content img{display:block;margin:1.75rem auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.post-content .mermaid,.section-content .mermaid{margin:1.75rem 0;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);text-align:center;overflow-x:auto}.post-content .mermaid svg,.section-content .mermaid svg{max-width:100%;height:auto}.post-content .admonition{--admonition-color: var(--info);position:relative;margin:1.75rem 0;padding:.95rem 1.2rem .95rem 1.25rem;border:1px solid var(--border);border-left:3px solid var(--admonition-color);border-radius:0 var(--radius) var(--radius) 0;background:var(--bg-soft)}.post-content .admonition-title{display:flex;align-items:center;gap:.4rem;margin:0 0 .45rem;color:var(--admonition-color);font-size:.95rem;font-weight:700}.post-content .admonition p:last-child{margin-bottom:0}.post-content .admonition pre{margin:1rem 0 0}.post-content .admonition-note{--admonition-color: var(--info);background:var(--info-soft)}.post-content .admonition-tip{--admonition-color: var(--success);background:var(--success-soft)}.post-content .admonition-important{--admonition-color: var(--warning);background:var(--warning-soft)}.post-content .admonition-warning,.post-content .admonition-caution{--admonition-color: var(--danger);background:var(--danger-soft)}.post-nav{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border)}.post-nav-series-label{margin-bottom:1rem;color:var(--text-muted);font-size:.85rem;font-weight:600;text-align:center}.post-nav-series-links{display:flex;align-items:stretch;justify-content:space-between;gap:1rem}.post-nav-prev,.post-nav-next{flex:1;min-width:0}.post-nav-next{text-align:right}.post-nav a{display:flex;flex-direction:column;gap:.2rem;height:100%;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}.post-nav-next a{align-items:flex-end}.post-nav a:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-sm)}.post-nav-dir{color:var(--text-muted);font-size:.76rem;font-weight:500}.post-nav-title{color:var(--text);font-size:.92rem;font-weight:600;line-height:1.5}.post-nav a:hover .post-nav-title{color:var(--accent)}.post-nav-series-info{display:flex;align-items:center;flex-shrink:0;padding:.25rem .75rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.8rem;font-weight:600;white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid var(--border)}.pagination-link{padding:.5rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:.88rem;font-weight:600;transition:transform .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),background-color .18s var(--ease)}.pagination-link:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.pagination-info{color:var(--text-muted);font-size:.85rem}.pagination-spacer{width:5.5rem}.archive-page .page-header{border-bottom:1px solid var(--border);margin-bottom:2rem}.archive-year{margin-bottom:2.25rem}.archive-year-title{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem;font-size:1.3rem;font-weight:800}.archive-year-title::before{content:"";width:10px;height:10px;border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent), var(--accent-2))}.archive-post-list{list-style:none;padding-left:1.15rem;border-left:1.5px solid var(--border)}.archive-post-item{display:flex;align-items:baseline;gap:1rem;padding:.45rem .6rem;border-radius:var(--radius-sm);transition:background-color .15s var(--ease)}.archive-post-item:hover{background:var(--bg-soft)}.archive-post-date{flex-shrink:0;min-width:5.5em;color:var(--text-muted);font-size:.82rem;white-space:nowrap}.archive-post-title{color:var(--text);font-weight:500}.archive-post-title:hover{color:var(--accent)}.series-card-grid{display:flex;flex-direction:column;gap:1.25rem}.series-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);transition:box-shadow .2s var(--ease),transform .2s var(--ease)}.series-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.series-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.35rem;border-bottom:1px solid var(--border);background:var(--bg-soft)}.series-card-title{font-size:1.12rem;font-weight:700}.series-card-title a{color:var(--text)}.series-card-title a:hover{color:var(--accent)}.series-card-count{flex-shrink:0;padding:.12rem .6rem;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);font-size:.78rem;font-weight:600;white-space:nowrap}.series-card-list{list-style:none;padding:.6rem 1.35rem .85rem}.series-card-link{display:flex;align-items:baseline;gap:.7rem;padding:.4rem .5rem;border-radius:var(--radius-sm);color:var(--text);transition:background-color .15s var(--ease)}.series-card-link:hover{background:var(--bg-soft);color:var(--text)}.series-card-item-num{display:inline-grid;place-items:center;flex-shrink:0;width:1.55rem;height:1.55rem;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:700}.series-card-item-title{color:var(--text);font-size:.94rem;font-weight:500}.series-card-link:hover .series-card-item-title{color:var(--accent)}.series-progress{margin:1.5rem 0 2.25rem}.series-progress-bar{display:flex;gap:3px;height:6px}.series-progress-step{flex:1;border-radius:var(--radius-full);background:var(--border-strong)}.series-progress-step.series-progress-active{background:linear-gradient(90deg, var(--accent), var(--accent-2))}.series-progress-labels{display:flex;justify-content:space-between;margin-top:.4rem}.series-progress-label{color:var(--text-muted);font-size:.72rem;text-align:center}.series-post-list{list-style:none}.series-post-item{margin-bottom:1rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.series-post-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.series-post-item article{display:flex}.series-post-num{display:grid;place-items:center;flex-shrink:0;width:3.5rem;border-right:1px solid var(--border);background:var(--bg-soft);color:var(--accent);font-size:1.25rem;font-weight:800}.series-post-body{flex:1;min-width:0;padding:1.25rem}.series-post-body .post-title{font-size:1.12rem;margin-bottom:.4rem}.series-post-body .post-meta{margin-bottom:.5rem;font-size:.8rem}.series-post-body .post-summary{margin-bottom:.5rem;font-size:.9rem}.error-404{padding:4rem 0;text-align:center}.error-code{font-size:clamp(4rem,14vw,6rem);font-weight:800;line-height:1;letter-spacing:-.04em;background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);color:var(--accent)}.error-title{margin:.75rem 0 1rem;color:var(--text-soft);font-size:1.4rem;font-weight:600}.error-message{margin-bottom:2rem;color:var(--text-muted)}.btn-back-home{display:inline-flex;align-items:center;padding:.65rem 1.5rem;border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;font-weight:600;box-shadow:var(--shadow-sm);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}.btn-back-home:hover{transform:translateY(-2px);color:#fff;box-shadow:var(--shadow-md)}.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-soft);font-size:1.1rem;box-shadow:var(--shadow-md);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{color:var(--accent);border-color:var(--accent)}@media (max-width: 1079px){.post-toc-toggle{display:grid;place-items:center;position:fixed;right:1rem;bottom:5rem;z-index:999;width:3rem;height:3rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font-size:1.15rem;box-shadow:var(--shadow-md);cursor:pointer}.post-toc{display:block;position:fixed;top:0;left:0;z-index:1000;width:290px;max-width:85vw;height:100dvh;padding:1.5rem 1.25rem;border-right:1px solid var(--border);background:var(--bg);overflow-y:auto;transform:translateX(-102%);visibility:hidden;transition:transform .3s var(--ease),visibility .3s var(--ease)}.post-toc.open{transform:translateX(0);visibility:visible}.post-toc-backdrop{display:block;position:fixed;inset:0;z-index:998;background:rgba(15,17,21,.45);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s var(--ease)}.post-toc-backdrop.show{opacity:1;visibility:visible}}@media (max-width: 900px){.post-card-grid{grid-template-columns:1fr}}@media (max-width: 768px){.container{padding:0 1.15rem}.main-content{padding-top:1.75rem;padding-bottom:3.5rem}.hamburger{display:flex}.site-logo-text{font-size:1rem}.nav-links{position:fixed;top:var(--header-height);left:0;right:0;z-index:99;flex-direction:column;align-items:stretch;gap:0;max-height:0;padding:0 .75rem;border-bottom:1px solid rgba(0,0,0,0);background:var(--bg);overflow:hidden;visibility:hidden;box-shadow:var(--shadow-md);transition:max-height .32s var(--ease),padding .32s var(--ease),visibility .32s var(--ease),border-color .32s var(--ease)}.nav-links.nav-open{max-height:420px;padding:.6rem .75rem;border-bottom-color:var(--border);visibility:visible}.nav-links a{display:block;padding:.8rem .9rem;font-size:.98rem}body.menu-open{overflow:hidden}.hero{padding:3rem 1.1rem 2.25rem;margin-bottom:2.5rem}.hero-badge{font-size:.78rem}.hero-description{font-size:.98rem}.hero-stats{gap:.6rem;margin-top:2rem}.stat-card{min-width:72px;padding:.65rem .9rem}.stat-number{font-size:1.2rem}.section-header h2{font-size:1.2rem}.post-card-body{padding:1.25rem}.post-card-summary{-webkit-line-clamp:2}.post-item{padding:1.35rem .25rem;margin:0}.post-title{font-size:1.15rem}.post-content h1,.section-content h1{font-size:1.45rem}.post-content h2,.section-content h2{font-size:1.25rem}.post-content h3,.section-content h3{font-size:1.1rem}.post-content,.section-content{font-size:1rem}.post-content table,.section-content table{display:block;overflow-x:auto}.post-nav-series-links{flex-direction:column;align-items:stretch}.post-nav-series-info{order:-1;align-self:center}.post-nav-next{text-align:left}.post-nav-next a{align-items:flex-start}.pagination{gap:.75rem}.pagination-link{padding:.55rem .95rem}.pagination-spacer{width:auto}.archive-post-item{padding:.45rem .35rem}.tree-post-desc{max-width:100%;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.series-post-num{width:2.6rem;font-size:1rem}.series-post-body{padding:1rem}.back-to-top{right:.9rem;bottom:.9rem;width:42px;height:42px}}@media (max-width: 480px){.site-logo-text{display:none}.archive-post-item{flex-direction:column;gap:.1rem}.archive-post-date{font-size:.76rem}.hero-actions{flex-direction:column;align-items:stretch}.btn{justify-content:center}.tree-post-meta{font-size:.72rem}.tree-post-meta .tag{font-size:.66rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}@media print{.site-header,.site-footer,.post-nav,.post-toc,.post-toc-toggle,.back-to-top,.reading-progress,.copy-btn,.skip-link{display:none !important}body{font-size:12pt;color:#000;background:#fff}.post-content a{text-decoration:underline}}@media (forced-colors: active){.stat-number,.error-code{-webkit-text-fill-color:currentColor;color:CanvasText}.post-card-accent,.reading-progress{background:Highlight}}