*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0f1117;--color-surface: #1a1d27;--color-surface-hover: #1f2335;--color-border: #2e3148;--color-accent: #6c63ff;--color-accent-hover: #7c73ff;--color-valid: #22c55e;--color-valid-bg: rgba(34, 197, 94, .1);--color-invalid: #ef4444;--color-invalid-bg: rgba(239, 68, 68, .1);--color-text-primary: #e2e8f0;--color-text-muted: #64748b;--color-text-code: #a9b1d6;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius: 8px;--radius-lg: 12px}html,body{height:100%}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 24px;display:flex;align-items:center;gap:32px;height:64px;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.navbar-links{display:flex;gap:4px;overflow:visible}.nav-link{padding:6px 12px;border-radius:var(--radius);font-size:13px;color:var(--color-text-muted);text-decoration:none;white-space:nowrap;transition:color .15s,background .15s}.nav-link:hover{color:var(--color-text-primary);background:#ffffff0d}.nav-link.active{color:var(--color-text-primary);background:#6c63ff26}.navbar-brand{text-decoration:none}.nav-dropdown{position:relative}.nav-dropdown-trigger{padding:6px 12px;border-radius:var(--radius);font-size:13px;color:var(--color-text-muted);background:none;border:none;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px;transition:color .15s,background .15s;font-family:inherit}.nav-dropdown-trigger:hover,.nav-dropdown-trigger.active{color:var(--color-text-primary);background:#ffffff0d}.nav-dropdown-trigger.active{background:#6c63ff26}.nav-dropdown-arrow{font-size:9px;opacity:.6}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:6px;min-width:220px;z-index:200;box-shadow:0 8px 32px #0006;display:flex;flex-direction:column;gap:2px}.nav-dropdown-item{padding:8px 12px;border-radius:6px;font-size:13px;color:var(--color-text-muted);text-decoration:none;white-space:nowrap;transition:color .15s,background .15s}.nav-dropdown-item:hover{color:var(--color-text-primary);background:#ffffff0f}.nav-dropdown-item.active{color:var(--color-text-primary);background:#6c63ff26}.query-expression-input{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-primary);font-family:var(--font-mono);font-size:13px;padding:7px 12px;outline:none;min-width:220px;transition:border-color .15s}.query-expression-input:focus{border-color:var(--color-accent)}.query-expression-input::placeholder{color:var(--color-text-muted)}.app{max-width:1100px;margin:0 auto;padding:40px 24px;width:100%}.page-header{margin-bottom:24px}.page-header h1{font-size:22px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.page-header p{color:var(--color-text-muted);font-size:14px}.home-hero{text-align:center;padding:32px 0 24px}.home-hero-tagline{color:var(--color-text-muted);font-size:15px}.about-section{margin-top:56px;padding-top:40px;border-top:1px solid var(--color-border);max-width:860px}.about-section h1{font-size:26px;font-weight:700;letter-spacing:-.3px;margin-bottom:14px;color:var(--color-text-primary)}.about-section h2{font-size:20px;font-weight:700;margin-top:36px;margin-bottom:12px;color:var(--color-text-primary)}.about-section h3{font-size:15px;font-weight:700;margin-bottom:6px;color:var(--color-text-primary)}.about-section p{font-size:15px;line-height:1.75;color:var(--color-text-muted);margin-bottom:8px}.about-section ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.about-section ul li{font-size:15px;line-height:1.65;color:var(--color-text-muted);padding-left:1.1rem;position:relative}.about-section ul li:before{content:"›";position:absolute;left:0;color:var(--color-accent);font-weight:700}.about-section ul li a{color:var(--color-accent);text-decoration:none}.about-section ul li a:hover{text-decoration:underline}.faq-list{display:flex;flex-direction:column;gap:20px;margin-top:8px}.faq-item{padding:18px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.faq-item h3{font-size:15px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.faq-item p{margin-bottom:0}.faq-item p a{color:var(--color-accent);text-decoration:none}.faq-item p a:hover{text-decoration:underline}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:48px}.tool-card{display:flex;flex-direction:column;gap:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;text-decoration:none;transition:border-color .15s,background .15s}.tool-card:hover{border-color:var(--color-accent);background:var(--color-surface-hover)}.tool-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);background:#6c63ff1f;border:1px solid rgba(108,99,255,.25);padding:2px 8px;border-radius:100px;width:fit-content}.tool-card h2{font-size:15px;font-weight:600;color:var(--color-text-primary)}.tool-card p{font-size:13px;color:var(--color-text-muted);line-height:1.6;flex:1}.tool-cta{font-size:13px;font-weight:500;color:var(--color-accent)}.header{margin-bottom:36px;text-align:center}.header h1{font-size:28px;font-weight:600;letter-spacing:-.5px;color:var(--color-text-primary)}.header p{margin-top:6px;color:var(--color-text-muted);font-size:14px}.main-panel{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:768px){.main-panel{grid-template-columns:1fr}}.panel-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.panel-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:12px 16px;border-bottom:1px solid var(--color-border);background:#ffffff05}.json-editor{width:100%;min-height:380px;background:transparent;border:none;outline:none;color:var(--color-text-code);font-family:var(--font-mono);font-size:13px;line-height:1.7;padding:16px;resize:vertical}.json-editor::placeholder{color:var(--color-text-muted);font-style:italic}.mode-selector{display:flex;gap:4px;margin-bottom:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:4px;width:fit-content}.mode-tab{padding:6px 20px;border-radius:calc(var(--radius) - 2px);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;border:none;background:transparent;color:var(--color-text-muted);transition:background .15s,color .15s}.mode-tab:hover{color:var(--color-text-primary)}.mode-tab.active{background:var(--color-accent);color:#fff}.action-bar{display:flex;gap:10px;padding:16px 0;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:var(--radius);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s,transform .1s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-validate{background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-validate:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-accent)}.btn-beautify{background:var(--color-accent);color:#fff}.btn-beautify:hover:not(:disabled){background:var(--color-accent-hover)}.btn-convert{background:transparent;color:var(--color-text-primary);border:1px solid var(--color-accent);color:var(--color-accent)}.btn-convert:hover:not(:disabled){background:#6c63ff1a}.btn-minify{background:transparent;color:#f59e0b;border:1px solid #f59e0b}.btn-minify:hover:not(:disabled){background:#f59e0b1a}.btn-compare{background:var(--color-accent);color:#fff}.btn-compare:hover:not(:disabled){background:var(--color-accent-hover)}.btn-copy{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);padding:6px 14px;font-size:12px}.btn-copy:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-text-muted)}.btn-copy.copied{color:var(--color-valid);border-color:var(--color-valid)}.btn-download{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);padding:6px 14px;font-size:12px}.btn-download:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-text-muted)}.result-actions{display:flex;gap:6px;align-items:center}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;font-size:12px;font-weight:500}.status-badge.valid{background:var(--color-valid-bg);color:var(--color-valid);border:1px solid rgba(34,197,94,.25)}.status-badge.invalid{background:var(--color-invalid-bg);color:var(--color-invalid);border:1px solid rgba(239,68,68,.25)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-badge.valid .status-dot{background:var(--color-valid)}.status-badge.invalid .status-dot{background:var(--color-invalid)}.error-message{margin-top:10px;padding:10px 14px;background:var(--color-invalid-bg);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);color:var(--color-invalid);font-family:var(--font-mono);font-size:12px;line-height:1.5;word-break:break-word}.result-panel{display:flex;flex-direction:column}.result-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--color-border);background:#ffffff05}.result-header .panel-label{padding:0;border:none;background:none}.result-code{font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--color-text-code);padding:16px;white-space:pre;overflow-x:auto;min-height:380px}.result-empty{display:flex;align-items:center;justify-content:center;min-height:380px;color:var(--color-text-muted);font-size:13px}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.btn-validate .spinner{border-color:#64748b4d;border-top-color:var(--color-text-primary)}@keyframes spin{to{transform:rotate(360deg)}}.action-bar-wrapper{margin-bottom:16px}.compare-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media(max-width:768px){.compare-editors{grid-template-columns:1fr}}.compare-summary{font-size:13px;font-family:var(--font-mono);padding:4px 10px;border-radius:6px;font-weight:500}.compare-summary.identical{color:var(--color-valid);background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.compare-summary.has-diff{color:var(--color-invalid);background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.compare-result{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:24px}.diff-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.diff-item{background:var(--color-bg);border-radius:8px;padding:10px 14px;border-left:3px solid var(--color-border);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.diff-item.diff-added{border-left-color:var(--color-valid)}.diff-item.diff-removed{border-left-color:var(--color-invalid)}.diff-item.diff-changed{border-left-color:#f59e0b}.diff-item.diff-type_changed{border-left-color:#a78bfa}.diff-path{font-family:var(--font-mono);font-size:12px;color:var(--color-text-primary);font-weight:600;flex:1;min-width:120px}.diff-type-badge{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:4px;font-weight:600}.diff-added .diff-type-badge{background:#22c55e26;color:var(--color-valid)}.diff-removed .diff-type-badge{background:#ef444426;color:var(--color-invalid)}.diff-changed .diff-type-badge{background:#f59e0b26;color:#f59e0b}.diff-type_changed .diff-type-badge{background:#a78bfa26;color:#a78bfa}.diff-values{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:4px}.diff-left,.diff-right{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.diff-left .diff-label{color:var(--color-invalid);font-weight:600;margin-right:4px}.diff-right .diff-label{color:var(--color-valid);font-weight:600;margin-right:4px}.diff-view{font-family:var(--font-mono);font-size:12px;line-height:1.6;margin-top:12px;border-radius:8px;overflow:hidden;border:1px solid var(--color-border)}.diff-line{display:flex;align-items:baseline;padding:1px 12px;white-space:pre}.diff-line-equal{color:var(--color-text-muted);background:transparent}.diff-line-removed{color:#fca5a5;background:#ef44441f}.diff-line-added{color:#86efac;background:#22c55e1f}.diff-line-marker{width:16px;flex-shrink:0;-webkit-user-select:none;user-select:none;opacity:.7;font-weight:700}.diff-line-content{flex:1;overflow-x:auto}.footer{border-top:1px solid var(--color-border);margin-top:64px;padding:20px 24px;background:var(--color-surface)}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:1200px;margin:0 auto}.footer-copy{font-size:13px;color:var(--color-text-muted)}.footer-links{display:flex;gap:20px}.footer-links a{font-size:13px;color:var(--color-text-muted);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--color-accent)}.legal-page{max-width:760px;padding:40px 0 64px}.legal-page h1{font-size:28px;font-weight:700;margin-bottom:6px}.legal-date{font-size:13px;color:var(--color-text-muted);margin-bottom:24px!important}.legal-page h2{font-size:18px;font-weight:700;margin-top:32px;margin-bottom:10px;color:var(--color-text-primary)}.legal-page h3{font-size:15px;font-weight:600;margin-top:16px;margin-bottom:6px;color:var(--color-text-primary)}.legal-page p{font-size:15px;line-height:1.75;color:var(--color-text-muted);margin-bottom:12px}.legal-page ul{list-style:disc;padding-left:1.4rem;display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.legal-page ul li{font-size:15px;line-height:1.65;color:var(--color-text-muted)}.legal-page a{color:var(--color-accent);text-decoration:none}.legal-page a:hover{text-decoration:underline}.popular-tools-section{margin-top:48px;padding-top:36px;border-top:1px solid var(--color-border)}.popular-tools-heading{font-size:20px;font-weight:700;margin-bottom:20px;color:var(--color-text-primary)}.popular-tools-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.popular-tools-col h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:10px}.popular-tools-col ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}.popular-tools-col ul li a{font-size:14px;color:var(--color-accent);text-decoration:none;transition:opacity .15s}.popular-tools-col ul li a:hover{opacity:.8;text-decoration:underline}.related-tools{margin-top:48px;padding-top:32px;border-top:1px solid var(--color-border)}.related-tools-heading{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 16px}.related-tools-list{display:flex;flex-wrap:wrap;gap:10px}.related-tool-link{display:inline-block;padding:8px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);font-size:13px;color:var(--color-accent);text-decoration:none;transition:background .15s,border-color .15s}.related-tool-link:hover{background:#6c63ff1a;border-color:var(--color-accent)}.tool-explainer{margin-top:48px;padding-top:32px;border-top:1px solid var(--color-border)}.tool-explainer h2{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0 0 10px}.tool-explainer h2:not(:first-child){margin-top:28px}.tool-explainer p{font-size:14px;line-height:1.75;color:var(--color-text-muted);margin:0 0 12px}.tool-explainer ul{margin:0 0 12px 20px;padding:0}.tool-explainer ul li{font-size:14px;line-height:1.75;color:var(--color-text-muted);margin-bottom:4px}.navbar-logo{height:44px;max-width:260px;width:auto;display:block;object-fit:contain;border-radius:8px;background:#fff;padding:4px 10px}.contact-form{display:flex;flex-direction:column;gap:16px;margin:24px 0 32px}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:600px){.contact-row{grid-template-columns:1fr}}.contact-field{display:flex;flex-direction:column;gap:6px}.contact-field label{font-size:13px;font-weight:600;color:var(--color-text-muted);letter-spacing:.02em}.contact-required{color:var(--color-invalid)}.contact-field input,.contact-field textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-primary);font-size:14px;font-family:inherit;padding:9px 12px;outline:none;transition:border-color .15s;resize:vertical}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--color-accent)}.contact-error{font-size:13px;color:var(--color-invalid);background:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius);padding:8px 12px}.contact-submit{align-self:flex-start;min-width:140px}.contact-success{display:flex;align-items:flex-start;gap:14px;background:#22c55e14;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius);padding:16px 20px;margin:24px 0 32px;font-size:15px;color:var(--color-text-primary)}.contact-success-icon{font-size:20px;color:var(--color-valid);font-weight:700;line-height:1.4}.contact-info{margin-top:8px}.blog-index{max-width:760px;padding:40px 0 64px}.blog-index-header{margin-bottom:36px}.blog-index-header h1{font-size:32px;font-weight:700;margin-bottom:8px;color:var(--color-text-primary)}.blog-index-header p{font-size:16px;color:var(--color-text-muted)}.blog-list{display:flex;flex-direction:column;gap:20px}.blog-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:24px 28px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.blog-card:hover{border-color:var(--color-accent);box-shadow:0 0 0 3px #6c63ff1a}.blog-card-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}.blog-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#6c63ff26;color:var(--color-accent);padding:3px 8px;border-radius:4px}.blog-card-meta{font-size:13px;color:var(--color-text-muted)}.blog-card-title{font-size:20px;font-weight:700;color:var(--color-text-primary);margin-bottom:8px;line-height:1.35}.blog-card-excerpt{font-size:14px;color:var(--color-text-muted);line-height:1.65;margin-bottom:14px}.blog-card-read{font-size:13px;font-weight:600;color:var(--color-accent)}.blog-post{max-width:760px;padding:40px 0 80px}.blog-post-header{margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid var(--color-border)}.blog-post-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}.blog-back-link{font-size:13px;color:var(--color-text-muted);text-decoration:none;transition:color .15s}.blog-back-link:hover{color:var(--color-text-primary)}.blog-post-header h1{font-size:30px;font-weight:700;line-height:1.3;color:var(--color-text-primary);margin-bottom:14px}.blog-post-intro{font-size:16px;line-height:1.75;color:var(--color-text-muted);margin-bottom:16px}.blog-post-byline{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted)}.blog-byline-sep{opacity:.4}.blog-post-body{font-size:15px;line-height:1.8;color:var(--color-text-primary)}.blog-post-body h2{font-size:20px;font-weight:700;margin:36px 0 12px;color:var(--color-text-primary)}.blog-post-body p{margin-bottom:16px;color:#c8ccd8}.blog-post-body ul{list-style:disc;padding-left:1.4rem;margin-bottom:16px}.blog-post-body ul li{margin-bottom:8px;color:#c8ccd8}.blog-post-body a{color:var(--color-accent);text-decoration:none}.blog-post-body a:hover{text-decoration:underline}.blog-post-body code{background:#ffffff12;border-radius:4px;padding:1px 6px;font-family:var(--font-mono);font-size:.88em;color:#e2b96f}.blog-code-block{background:#0d0f18;border:1px solid var(--color-border);border-radius:8px;padding:18px 20px;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:#a8d8a8;overflow-x:auto;margin-bottom:20px;white-space:pre}.blog-table-wrapper{overflow-x:auto;margin-bottom:20px}.blog-table{width:100%;border-collapse:collapse;font-size:14px}.blog-table th,.blog-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--color-border)}.blog-table th{font-weight:700;color:var(--color-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:#ffffff08}.blog-table td{color:#c8ccd8}.blog-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}@media(max-width:600px){.blog-compare{grid-template-columns:1fr}}.blog-compare-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:6px}.blog-compare-pane .blog-code-block{margin-bottom:0}.blog-post-cta{margin-top:40px;padding:18px 22px;background:#6c63ff14;border:1px solid rgba(108,99,255,.25);border-radius:8px;font-size:15px;color:var(--color-text-primary)}.blog-post-cta a{color:var(--color-accent);font-weight:600;text-decoration:none}.blog-post-cta a:hover{text-decoration:underline}.blog-post-footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--color-border)}.blog-shortcuts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}.blog-shortcut-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px 18px}.blog-shortcut-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:12px}.blog-shortcut-row{display:flex;align-items:center;gap:5px;margin-bottom:10px;flex-wrap:wrap}.blog-shortcut-row kbd{display:inline-flex;align-items:center;justify-content:center;background:#0d0f18;border:1px solid var(--color-border);border-bottom-width:2px;border-radius:5px;padding:2px 8px;font-family:var(--font-mono);font-size:11px;color:var(--color-text-primary);white-space:nowrap}.blog-shortcut-row span{font-size:12px;color:var(--color-text-muted)}.blog-shortcut-desc{font-size:13px!important;color:#c8ccd8!important;flex:1;min-width:150px}
