:root{--bg-color:#ffffff;--card-bg-color:#f8f8f8;--text-color:#111111;--secondary-text-color:#555555;--border-color:#eaeaea;--accent-color:#7a5cfa;--font-sans:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--article-width:740px;--toc-width:300px;--toc-gap:40px}html.dark-mode{--bg-color:#121212;--card-bg-color:#1e1e1e;--text-color:#e0e0e0;--secondary-text-color:#aaaaaa;--border-color:#333333;--accent-color:#7a5cfa}*{font-family:var(--font-sans)}body{background-color:var(--bg-color);color:var(--text-color);margin:0}.container{max-width:900px;margin:0 auto;padding:0 20px}a{color:var(--text-color);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-color)}header{padding:20px 0;border-bottom:1px solid var(--border-color);background-color:var(--bg-color)}.header-content{display:flex;justify-content:space-between;align-items:center}.header-left,.header-right{display:flex;align-items:center;gap:20px}.header-center{display:flex;flex:auto;justify-content:center}.logo{font-size:1.5rem;font-weight:700}.search-container{position:relative}.search-bar{padding:8px 12px;border-radius:6px;border:1px solid var(--border-color);background-color:var(--card-bg-color);color:var(--text-color);width:300px;max-width:100%}.search-bar:focus{outline:none;background-color:var(--bg-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-color) 85%,transparent)}.search-bar::placeholder{color:var(--secondary-text-color);opacity:.7}.social-links{display:flex;gap:15px}.social-links svg{color:var(--secondary-text-color);height:22px;width:22px}.social-links a:hover svg{color:var(--text-color)}.theme-toggle{background:0 0;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.category-nav{display:flex;gap:20px;margin:40px 0;padding-bottom:15px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.category-nav a{font-weight:500;color:var(--secondary-text-color)}.category-nav a:hover{color:var(--text-color)}.all-tags-link{margin-left:auto;font-weight:700}#progress-bar{position:fixed;top:0;left:0;width:0;height:4px;background-color:var(--accent-color);z-index:9999;transition:width .1s linear}.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:30px;margin-top:40px}.post-card{background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:8px;transition:box-shadow .2s ease-out}.post-card:hover{box-shadow:0 8px 24px rgba(0,0,0,8%)}.card-image{width:100%;height:180px;object-fit:cover;border-radius:8px 8px 0 0;border-bottom:1px solid var(--border-color)}.post-meta{font-size:.8rem;color:var(--secondary-text-color);text-transform:uppercase;padding:10px 15px 0}.card-link{display:block;color:inherit;position:relative}.card-content{padding:12px 15px 15px}.card-content h3{margin:5px 0 0;font-size:1.2rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.card-excerpt{margin:8px 0 10px;color:var(--secondary-text-color);display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-link::after{content:attr(data-title);position:absolute;left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:8px;background:rgba(0,0,0,.55);color:#fff;padding:6px 8px;border-radius:6px;font-size:.85rem;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.card-link:hover::after{opacity:1}.card-link:hover .featured-content h2,.card-link:hover .card-content h3{color:var(--accent-color)}.featured-post{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;align-items:start;margin-top:28px;background:var(--card-bg-color);padding:16px;border-radius:10px;border:1px solid var(--border-color)}.featured-post:hover{box-shadow:0 8px 24px rgba(0,0,0,8%)}.featured-image-container img{width:100%;border-radius:12px}.featured-content h2{font-size:2.1rem;margin:6px 0 4px;transition:color .15s ease}.featured-content p{color:var(--secondary-text-color);line-height:1.6}.read-more{font-weight:700}.page-header{text-align:center;margin:40px auto 60px;max-width:700px}.page-header h1{font-size:3rem;margin-bottom:10px}.page-header p{font-size:1.2rem;color:var(--secondary-text-color)}.post-header{text-align:center;margin:40px 0}.breadcrumbs{font-size:.9rem;margin-bottom:20px;color:var(--secondary-text-color)}.post-header h1{font-size:3rem;margin:10px 0;line-height:1.2}.post-main-image-container{margin-bottom:40px;background-color:var(--card-bg-color);padding:20px;border-radius:12px;border:1px solid var(--border-color)}.post-main-image{width:100%;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.1);display:block}.post-content{line-height:1.8;font-size:1.1rem}.post-content h2,.post-content h3{margin-top:50px}.post-content a{text-decoration:underline;color:var(--accent-color)}.single-page{position:relative;padding:0 20px}.single-post{max-width:var(--article-width);margin:0 auto;min-width:0;padding-bottom:60px}.toc-container{position:fixed;top:calc(var(--site-header-height,80px) + 20px);left:calc(50% + (var(--article-width)/2) + var(--toc-gap));width:var(--toc-width);background:var(--card-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:20px;max-height:calc(100vh - (var(--site-header-height,80px) + 60px));overflow-y:auto;z-index:20}.toc{font-size:.9rem}.toc h4{margin-top:0;font-weight:500}.toc ul{list-style-type:none;padding-left:0;margin:1em 0}.toc ul ul li{padding-left:15px;border-left:2px solid var(--border-color)}.toc a{color:var(--secondary-text-color);display:block;padding:5px 0}.toc a:hover{color:var(--text-color)}.toc .share-buttons{margin-top:30px;padding-top:20px;border-top:1px solid var(--border-color)}.toc .share-buttons h4{margin-bottom:15px}.toc .share-buttons a{display:inline-block;padding:6px 14px;border:1px solid var(--border-color);border-radius:20px;margin-right:8px;font-size:.85rem;font-weight:500}.toc .share-buttons a:hover{background-color:var(--card-bg-color);border-color:var(--text-color)}@media(max-width:1280px){.toc-container{display:none}}@media(max-width:820px){.single-post{padding:0 16px}}.tags-list{display:flex;flex-wrap:wrap;gap:15px}.tag-item{display:flex;flex-direction:column;padding:20px;border:1px solid var(--border-color);border-radius:8px;flex-grow:1;min-width:150px;transition:all .2s;background:var(--card-bg-color)}.tag-item:hover{border-color:var(--accent-color);transform:translateY(-3px)}.tag-name{font-weight:700;font-size:1.1rem}.tag-count{font-size:.9rem;color:var(--secondary-text-color)}.search-results{display:none;position:absolute;top:110%;left:0;right:0;background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:100;max-height:300px;overflow-y:auto;min-width:300px;max-width:600px}.result-item{display:block;padding:12px 15px;border-bottom:1px solid var(--border-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-item:last-child{border-bottom:none}.result-item.active,.result-item:hover{background-color:var(--accent-color);color:#fff}.theme-toggle .sun-svg{color:#f39c12}html.light-mode .sun-icon{display:none}html.light-mode .moon-icon{display:inline-block}html.dark-mode .moon-icon{display:none}html.dark-mode .sun-icon{display:inline-block}footer{border-top:1px solid var(--border-color);padding:30px 0;margin-top:60px;background:var(--bg-color)}.footer-content{display:flex;justify-content:space-between;align-items:center;color:var(--secondary-text-color)}.wip-page,.error-page{text-align:center;padding:80px 0;min-height:60vh;display:flex;align-items:center;justify-content:center}.wip-content,.error-content{max-width:600px;margin:0 auto}.wip-page h1,.error-page h1{font-size:clamp(4rem,10vw,8rem);margin:0 0 20px;line-height:1}.wip-page h2,.error-page h2{font-size:2rem;margin:0 0 20px;color:var(--text-color)}.wip-actions,.error-actions{display:flex;gap:20px;justify-content:center;margin-bottom:40px;flex-wrap:wrap}.wip-page .button,.error-page .button{padding:12px 24px;border-radius:8px;font-weight:500;text-decoration:none;transition:all .2s ease;display:inline-block}.wip-page .button.primary,.error-page .button.primary{background:var(--accent-color);color:#fff;border:2px solid var(--accent-color)}.wip-page .button.primary:hover,.error-page .button.primary:hover{background:0 0;color:var(--accent-color)}.wip-page .button.secondary,.error-page .button.secondary{background:0 0;color:var(--text-color);border:2px solid var(--border-color)}.wip-page .button.secondary:hover,.error-page .button.secondary:hover{background:var(--text-color);color:var(--bg-color);border-color:var(--text-color)}.wip-note{background:var(--card-bg-color);padding:20px;border-radius:8px;border:1px solid var(--border-color)}.wip-note p{margin:0;font-size:1rem}.wip-note a{color:var(--accent-color);text-decoration:none;font-weight:500}.wip-note a:hover{text-decoration:underline}@media(max-width:1024px){.container{padding:0 16px}.page-header h1{font-size:2.25rem}.featured-content h2{font-size:2rem}}@media(max-width:820px){.header-content{flex-wrap:wrap;gap:12px}.header-left{flex:none;display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.header-right{flex:none;display:flex;align-items:center;gap:12px}.header-center{flex:1 0 100%;order:3;justify-content:center}.search-container{flex:none}.search-bar{width:min(420px,100%)}.category-nav{gap:12px;margin:24px 0}.featured-post{grid-template-columns:1fr;gap:20px;padding:16px}.page-header h1{font-size:2rem}.post-header h1{font-size:2.25rem}}@media(max-width:640px){.logo{font-size:1.25rem}header{padding:12px 0}.post-list{grid-template-columns:1fr;gap:20px}.card-image{height:160px}.page-header{margin:24px auto 40px}.page-header p{font-size:1rem}.post-header{margin:24px 0}.post-header h1{font-size:1.8rem}.post-content{font-size:1rem}.footer-content{flex-direction:column;gap:10px;text-align:center}.search-results{left:50%;transform:translateX(-50%);right:auto;min-width:260px;max-width:min(92vw,600px)}.wip-page,.error-page{padding:40px 0}.wip-actions,.error-actions{flex-direction:column;align-items:center}.wip-page .button,.error-page .button{width:200px;text-align:center}}@media(max-width:400px){.card-image{height:140px}.featured-content h2{font-size:1.5rem}}