﻿@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');
:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-card:#ffffff;--bg-card-hover:#f8fafc;--bg-glass:rgba(255,255,255,0.85);--accent-primary:#2563eb;--accent-secondary:#3b82f6;--accent-glow:rgba(37,99,235,0.15);--accent-success:#059669;--accent-success-glow:rgba(5,150,105,0.12);--accent-warning:#d97706;--accent-danger:#dc2626;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--border-subtle:rgba(37,99,235,0.08);--border-accent:rgba(37,99,235,0.2);--gradient-hero:linear-gradient(135deg,#2563eb 0%,#3b82f6 50%,#60a5fa 100%);--gradient-card:linear-gradient(145deg,rgba(37,99,235,0.04) 0%,rgba(59,130,246,0.02) 100%);--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 8px 32px rgba(0,0,0,0.1);--shadow-glow:0 0 30px rgba(37,99,235,0.08);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 800px 600px at 20% 10%,rgba(37,99,235,0.03) 0%,transparent 60%),radial-gradient(ellipse 600px 400px at 80% 80%,rgba(59,130,246,0.02) 0%,transparent 60%);pointer-events:none;z-index:0}
.reading-progress{position:fixed;top:0;left:0;height:3px;background:var(--gradient-hero);z-index:1001;transition:width 0.1s linear;box-shadow:0 0 8px rgba(37,99,235,0.3)}
.glass-nav{background:rgba(255,255,255,0.88);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;transition:all 0.3s ease}
.glass-nav.scrolled{box-shadow:var(--shadow-md)}
.nav-container{max-width:1200px;margin:0 auto;padding:0.875rem 1.5rem;display:flex;justify-content:space-between;align-items:center}
.nav-logo{font-size:1.3rem;font-weight:800;color:var(--text-primary);text-decoration:none;display:flex;align-items:center;gap:0.5rem;letter-spacing:-0.02em}
.nav-logo .logo-dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;box-shadow:0 0 8px var(--accent-primary)}
.nav-links{display:flex;gap:0.25rem;list-style:none}
.nav-links a{color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:0.9rem;padding:0.5rem 0.875rem;border-radius:var(--radius-sm);transition:all 0.2s ease}
.nav-links a:hover,.nav-links a.active{color:var(--accent-primary);background:rgba(37,99,235,0.06)}
.mobile-menu-btn{display:none;background:none;border:1px solid var(--border-accent);color:var(--text-primary);font-size:1.25rem;cursor:pointer;padding:0.5rem 0.75rem;border-radius:var(--radius-sm);transition:all 0.2s ease}
.mobile-menu-btn:hover{background:rgba(37,99,235,0.06)}
@media(max-width:768px){.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:rgba(255,255,255,0.95);backdrop-filter:blur(20px);flex-direction:column;padding:1rem;border-bottom:1px solid var(--border-subtle)}.nav-links.active{display:flex}.mobile-menu-btn{display:block}}
.container{max-width:800px;margin:0 auto;padding:2rem 1.5rem;position:relative;z-index:1}
.container-wide{max-width:1000px}
.article-header{text-align:center;padding:3rem 0 2rem}
.article-header h1{font-size:2.5rem;font-weight:800;line-height:1.15;margin-bottom:1rem;letter-spacing:-0.03em;background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.article-meta{display:flex;justify-content:center;gap:1.5rem;color:var(--text-muted);font-size:0.85rem;flex-wrap:wrap}
.article-meta span{display:flex;align-items:center;gap:0.35rem}
.article-thumbnail{width:100%;max-width:800px;margin:0 auto 2rem;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle);box-shadow:var(--shadow-md)}
.article-thumbnail img,.article-thumbnail svg{width:100%;height:auto;display:block}
.toc-wrapper{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;margin:2rem 0;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.toc-wrapper::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-hero)}
.toc-title{font-size:0.8rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--accent-primary);margin-bottom:1rem;display:flex;align-items:center;gap:0.5rem}
.toc-title svg{width:16px;height:16px}
.toc-list{list-style:none;counter-reset:toc-counter}
.toc-list li{counter-increment:toc-counter;margin-bottom:0.35rem}
.toc-list li::before{content:counter(toc-counter,decimal-leading-zero);font-family:'JetBrains Mono',monospace;font-size:0.75rem;font-weight:700;color:var(--accent-primary);margin-right:0.75rem;opacity:0.6}
.toc-list a{color:var(--text-secondary);text-decoration:none;font-size:0.925rem;font-weight:500;transition:all 0.2s ease;display:inline}
.toc-list a:hover{color:var(--accent-primary);padding-left:4px}
.quick-answer-box{background:var(--gradient-card);border:1px solid var(--border-accent);border-radius:var(--radius-lg);padding:1.5rem;margin:1.5rem 0;position:relative;overflow:hidden}
.quick-answer-box::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--accent-primary)}
.quick-answer-box p{font-size:0.95rem;line-height:1.7;color:var(--text-secondary);margin:0}
.code-card{background:var(--bg-card);border:2px solid var(--accent-primary);border-radius:var(--radius-lg);padding:2rem;text-align:center;margin:1.5rem 0;position:relative;overflow:hidden;box-shadow:var(--shadow-glow)}
.code-card::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(37,99,235,0.03) 0%,transparent 50%);animation:codeCardPulse 4s ease-in-out infinite}
@keyframes codeCardPulse{0%,100%{opacity:0.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
.code-card .code-label{font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-muted);margin-bottom:0.75rem;position:relative}
.code-card .code-value{font-family:'JetBrains Mono',monospace;font-size:2.5rem;font-weight:700;color:var(--accent-primary);letter-spacing:0.15em;margin-bottom:1.25rem;position:relative}
.copy-btn{background:var(--gradient-hero);color:white;border:none;padding:0.75rem 2.5rem;border-radius:var(--radius-md);font-weight:700;font-size:0.95rem;cursor:pointer;transition:all 0.3s ease;position:relative;font-family:inherit;box-shadow:0 4px 15px rgba(37,99,235,0.25)}
.copy-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px rgba(37,99,235,0.35)}
.copy-btn:active{transform:translateY(0)}
.blog-tip-box{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:4px solid var(--accent-primary);padding:1.25rem 1.5rem;border-radius:0 var(--radius-md) var(--radius-md) 0;margin:1.5rem 0;box-shadow:var(--shadow-sm)}
.blog-tip-box p{color:var(--text-secondary);margin:0;font-size:0.925rem}
.blog-tip-box strong{color:var(--accent-primary)}
.article-content h2{font-size:1.6rem;font-weight:800;color:var(--text-primary);margin:3rem 0 1.25rem;letter-spacing:-0.02em;position:relative;padding-left:1rem}
.article-content h2::before{content:'';position:absolute;left:0;top:0.15em;width:4px;height:1.2em;background:var(--gradient-hero);border-radius:2px}
.article-content h3{font-size:1.2rem;font-weight:700;color:var(--accent-primary);margin:1.75rem 0 0.75rem}
.article-content p{color:var(--text-secondary);margin-bottom:1rem;line-height:1.8;font-size:1rem}
.article-content ul,.article-content ol{color:var(--text-secondary);margin:1rem 0;padding-left:0;list-style:none}
.article-content ul li,.article-content ol li{margin-bottom:0.6rem;line-height:1.6;padding-left:1.5rem;position:relative}
.article-content ul li::before{content:'\2192';position:absolute;left:0;color:var(--accent-primary);font-weight:700}
.article-content strong{color:var(--text-primary);font-weight:700}
.comparison-table{width:100%;border-collapse:separate;border-spacing:0;margin:1.5rem 0;background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}
.comparison-table th{background:var(--accent-primary);color:white;padding:1rem 1.25rem;text-align:left;font-weight:700;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.05em}
.comparison-table td{padding:0.875rem 1.25rem;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:0.925rem}
.comparison-table tr:last-child td{border-bottom:none}
.comparison-table tr:hover td{background:rgba(37,99,235,0.03)}
.cta-button{display:inline-block;background:var(--gradient-hero);color:white;text-decoration:none;padding:0.875rem 2rem;border-radius:var(--radius-md);font-weight:700;font-size:1rem;margin:1.5rem 0;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(37,99,235,0.25);font-family:inherit}
.cta-button:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(37,99,235,0.35)}
.faq-section{margin:3rem 0}
.faq-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:0.75rem;overflow:hidden;transition:all 0.3s ease;box-shadow:var(--shadow-sm)}
.faq-item:hover{border-color:var(--border-accent);box-shadow:var(--shadow-md)}
.faq-question{padding:1.125rem 1.25rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:600;color:var(--text-primary);font-size:0.95rem;gap:1rem;position:relative}
.faq-question::before{content:'+';font-size:1.25rem;color:var(--accent-primary);font-weight:700;transition:transform 0.3s ease;flex-shrink:0}
.faq-item.active .faq-question::before{transform:rotate(45deg)}
.faq-answer{padding:0 1.25rem;max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.4s ease;color:var(--text-secondary);line-height:1.7;font-size:0.925rem}
.faq-item.active .faq-answer{padding:0 1.25rem 1.25rem;max-height:600px}
.author-bio{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:2rem;margin:3rem 0;display:flex;gap:1.5rem;align-items:center;box-shadow:var(--shadow-sm)}
.author-avatar{width:72px;height:72px;border-radius:var(--radius-md);background:var(--gradient-hero);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:white;flex-shrink:0;box-shadow:0 4px 12px rgba(37,99,235,0.25)}
.author-info h4{color:var(--text-primary);font-size:1.1rem;margin-bottom:0.35rem;font-weight:700}
.author-info p{color:var(--text-muted);font-size:0.85rem;line-height:1.6;margin:0}
.related-posts{margin:3rem 0}
.related-posts h3{color:var(--text-primary);font-size:1.3rem;margin-bottom:1.25rem;font-weight:700}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.related-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.5rem;text-decoration:none;transition:all 0.3s ease;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.related-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-hero);opacity:0;transition:opacity 0.3s ease}
.related-card:hover{transform:translateY(-4px);border-color:var(--border-accent);box-shadow:var(--shadow-md)}
.related-card:hover::before{opacity:1}
.related-card h4{color:var(--text-primary);font-size:0.95rem;margin-bottom:0.5rem;line-height:1.4;font-weight:600}
.related-card p{color:var(--text-muted);font-size:0.825rem;margin:0}
.site-footer{background:var(--bg-secondary);padding:3rem 1.5rem;margin-top:4rem;border-top:1px solid var(--border-subtle)}
.footer-content{max-width:1200px;margin:0 auto;text-align:center}
.footer-content p{color:var(--text-muted);font-size:0.85rem;margin-bottom:0.5rem}
.footer-content strong{color:var(--text-primary)}
.footer-links{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;flex-wrap:wrap}
.footer-links a{color:var(--text-secondary);text-decoration:none;font-size:0.85rem;transition:color 0.2s ease}
.footer-links a:hover{color:var(--accent-primary)}
#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--accent-primary);color:white;padding:0.875rem 1.75rem;border-radius:var(--radius-md);font-weight:600;font-size:0.9rem;opacity:0;transition:all 0.3s ease;z-index:1000;pointer-events:none;box-shadow:0 4px 20px rgba(37,99,235,0.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.sticky-mobile-cta{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,0.95);backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);padding:0.75rem 1rem;display:flex;justify-content:space-between;align-items:center;z-index:999;transform:translateY(100%);transition:transform 0.3s ease;box-shadow:0 -2px 10px rgba(0,0,0,0.05)}
.sticky-mobile-cta .cta-text{color:var(--text-primary);font-weight:600;font-size:0.85rem}
.sticky-mobile-cta .cta-button{margin:0;padding:0.5rem 1.25rem;font-size:0.85rem}
@media(min-width:769px){.sticky-mobile-cta{display:none!important}}
.pulse-dot{width:6px;height:6px;background:var(--accent-success);border-radius:50%;display:inline-block;animation:pulse 2s infinite;box-shadow:0 0 6px var(--accent-success)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}
@media(max-width:600px){.pros-cons{grid-template-columns:1fr}}
.pros-box,.cons-box{padding:1.25rem;border-radius:var(--radius-md)}
.pros-box{background:rgba(5,150,105,0.05);border:1px solid rgba(5,150,105,0.2)}
.cons-box{background:rgba(220,38,38,0.05);border:1px solid rgba(220,38,38,0.2)}
.pros-box h4{color:#059669;margin-bottom:0.75rem}
.cons-box h4{color:#dc2626;margin-bottom:0.75rem}
.pros-box li,.cons-box li{color:var(--text-secondary);font-size:0.9375rem;margin-bottom:0.5rem}
.rating-box{background:var(--bg-card);border:2px solid var(--accent-primary);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;margin:1.5rem 0;box-shadow:var(--shadow-glow)}
.rating-score{font-size:3rem;font-weight:900;background:var(--gradient-hero);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.rating-label{color:var(--text-muted);font-size:0.875rem;margin-top:0.25rem}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.article-content>*{animation:fadeInUp 0.5s ease forwards}
