:root{color-scheme:light;--bg: #F6F7F9;--surface: #FFFFFF;--surface-2: #FBFBFC;--surface-3: #EEF0F3;--ink: #111418;--ink-2: #2A303A;--muted: #4A5260;--subtle: #5B6370;--border: #E3E6EB;--border-strong: #CDD2D9;--accent: #0B7A55;--accent-hover: #075E41;--accent-soft: #E6F4EE;--accent-ink: #075E41;--on-accent: #FFFFFF;--danger: #B42318;--danger-soft: #FDF0EF;--danger-border: #F4C7C3;--code-key: #1D4ED8;--code-str: #0B7A55;--code-num: #B45309;--code-bool: #7C3AED;--code-null: #6B7280;--pre-bg: #111418;--pre-ink: #E6E8EB;--shadow: 0 1px 2px rgba(17, 20, 24, .04);--shadow-lg: 0 8px 24px rgba(17, 20, 24, .1);--radius: 14px;--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--page: 1280px;--gutter: 24px;--font-code: var(--font-mono);--text-muted: var(--subtle);--accent-emerald: var(--accent);--accent-rose: var(--danger)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #0E1116;--surface: #161B22;--surface-2: #12161C;--surface-3: #21262D;--ink: #E6EDF3;--ink-2: #C9D1D9;--muted: #A3ADB9;--subtle: #8B949E;--border: #2A313A;--border-strong: #3D4652;--accent: #34D399;--accent-hover: #6EE7B7;--accent-soft: #0F2E24;--accent-ink: #6EE7B7;--on-accent: #06261B;--danger: #F87171;--danger-soft: #2D1416;--danger-border: #5C2326;--code-key: #79B8FF;--code-str: #7EE2B8;--code-num: #F0B072;--code-bool: #C4A7FF;--code-null: #8B949E;--pre-bg: #0A0D12;--shadow: none;--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}code,pre,kbd{font-family:var(--font-mono)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hidden,[hidden]{display:none!important}.skip-link{position:absolute;left:12px;top:-48px;z-index:100;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;text-decoration:none}.skip-link:focus{top:12px;color:var(--bg)}.text-emerald,.text-blue,.text-cyan,.text-amber,.text-orange,.text-pink,.text-yellow{color:var(--accent)}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header-inner{max-width:var(--page);margin:0 auto;padding:0 var(--gutter);min-height:60px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand:hover{color:var(--ink)}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:700}.brand-name{font-family:var(--font-mono);font-weight:700;font-size:16px}.brand-name span{color:var(--accent)}.site-nav{display:flex;flex-wrap:wrap;gap:2px;flex:1}.nav-item{font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:8px}.nav-item:hover{background:var(--surface-3);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink)}.menu-btn{display:none;margin-left:auto;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:20px}.menu-btn:hover{background:var(--surface-3)}@media(max-width:1080px){.site-header-inner{padding-right:8px}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.site-nav{display:none;flex:1 0 100%;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 16px 12px 0}.site-nav.open{display:grid}.nav-item{font-size:15px;padding:12px}}.page{display:block;max-width:var(--page);margin:0 auto;padding:28px var(--gutter) 32px}.crumbs,.breadcrumb-nav{font-size:14px;color:var(--subtle)}.crumbs a,.breadcrumb-nav a{color:var(--accent);text-decoration:none}.crumbs a:hover,.breadcrumb-nav a:hover{text-decoration:underline}.tool-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 24px}.tool-head .crumbs{flex:1 0 100%}.tool-head h1{margin:2px 0 0;font-size:32px;line-height:1.15;letter-spacing:-.02em}.tool-sub{margin:6px 0 0;font-size:16px;color:var(--muted);max-width:720px}.privacy-note{margin:0;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--accent-ink)}.tool-card{margin-top:20px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.toolbar:empty{display:none}.toolbar-divider{width:1px;height:24px;background:var(--border);margin:0 4px}.tool-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:500;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}.tool-btn i{font-size:13px;color:var(--subtle)}.tool-btn:hover{background:var(--surface-3);color:var(--ink)}.tool-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.tool-btn.primary i{color:inherit}.tool-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.tool-option{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin-left:auto}.tool-option select,.tool-option input{height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.workspace-area{display:flex;min-height:480px}.pane{display:flex;flex-direction:column;flex:1 1 50%;min-width:0}.secondary-pane{background:var(--surface-2)}.pane-header{display:flex;align-items:center;gap:4px;min-height:48px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border)}.pane-title{flex:1;min-width:0;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pane-title i{display:none}.pane-controls{display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end}.pane-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:14px;font-weight:500}.pane-btn:hover{background:var(--surface-3);color:var(--ink)}.pane-content{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.code-textarea{flex:1;width:100%;min-height:420px;resize:none;border:0;outline:0;padding:16px;background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:14px;line-height:1.6;-moz-tab-size:2;tab-size:2}.code-textarea::placeholder{color:var(--subtle);font-family:var(--font-sans)}.code-textarea:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--accent)}.pane-resizer{flex:0 0 9px;cursor:col-resize;background:var(--border);border-left:4px solid var(--surface);border-right:4px solid var(--surface);touch-action:none}.pane-resizer:hover,.pane-resizer.is-dragging{background:var(--accent)}.resizer-grip{display:none}body.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.is-resizing iframe{pointer-events:none}.html-preview-iframe{flex:1;width:100%;min-height:420px;border:0;background:#fff;align-self:center;transition:width .25s}.html-preview-iframe.viewport-tablet{width:768px;max-width:100%;border-inline:1px solid var(--border)}.html-preview-iframe.viewport-mobile{width:375px;max-width:100%;border-inline:1px solid var(--border)}.tree-view-container{flex:1;min-height:420px;max-height:70vh;overflow:auto;padding:16px;font-family:var(--font-mono);font-size:14px;line-height:1.6;color:var(--ink)}.tree-node{margin-left:1rem}.tree-node.root{margin-left:0}.tree-item{display:flex;align-items:flex-start;gap:.3rem;padding:1px 4px;border-radius:4px}.tree-item:hover{background:var(--surface-3)}.tree-toggle{cursor:pointer;color:var(--subtle);width:14px;text-align:center;font-size:11px}.tree-toggle:hover{color:var(--accent)}.tree-key{color:var(--code-key)}.tree-colon{color:var(--subtle);margin-right:.25rem}.tree-val-string{color:var(--code-str);word-break:break-word}.tree-val-number{color:var(--code-num)}.tree-val-boolean{color:var(--code-bool)}.tree-val-null{color:var(--code-null);font-style:italic}.tree-actions{display:inline-flex;gap:4px;margin-left:8px;opacity:0;transition:opacity .15s}.tree-item:hover .tree-actions,.tree-item:focus-within .tree-actions{opacity:1}.tree-copy-btn{font-size:11px;padding:1px 6px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--muted);font-family:var(--font-mono)}.tree-copy-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.tool-card>#diff-output{min-height:160px;border-top:1px solid var(--border);background:var(--surface-2)}.tool-btn[aria-pressed=true]{background:var(--surface-3);border-color:var(--ink-2);color:var(--ink)}.diff-container{font-family:var(--font-mono);font-size:14px;line-height:1.6}.diff-row{padding:1px 6px;white-space:pre-wrap;word-break:break-word}.diff-row .ln{display:inline-block;width:30px;color:var(--subtle)}.diff-row.del{background:var(--danger-soft);color:var(--danger);border-left:3px solid var(--danger)}.diff-row.add{background:var(--accent-soft);color:var(--accent-ink);border-left:3px solid var(--accent)}.status-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:10px 16px;border-top:1px solid var(--border);font-size:13px;color:var(--subtle)}.status-left,.status-right{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}#status-text[data-state=success]{color:var(--accent-ink)}#status-text[data-state=error]{color:var(--danger);font-weight:500}#status-text[data-state=success]:before{content:"✓ "}#status-text[data-state=error]:before{content:"✕ "}.related{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px}.related>span{font-size:14px;color:var(--subtle);margin-right:4px}.chip{font-size:14px;text-decoration:none;color:var(--ink-2);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 13px}.chip:hover{border-color:var(--accent);color:var(--accent-ink)}.seo-article-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px 48px;margin-top:48px;max-width:1120px}.seo-article-section>*{min-width:0}.aeo-quick-answer{grid-column:1 / -1;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;font-size:15px;line-height:1.6;color:var(--ink-2)}.aeo-quick-answer-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);margin-bottom:6px}.aeo-quick-answer-title i{display:none}.aeo-quick-answer p{margin:0}.seo-card h2,.faq-title{margin:0 0 14px;font-size:22px;letter-spacing:-.01em}.seo-card h2 i,.faq-title i,.seo-feature-box h3 i{display:none}.seo-card>p{font-size:16px;line-height:1.65;color:var(--ink-2)}.seo-grid{display:flex;flex-direction:column;gap:18px}.seo-feature-box h3{margin:0 0 4px;font-size:16px}.seo-feature-box p{margin:0;font-size:15px;line-height:1.6;color:var(--muted)}.faq-list{display:flex;flex-direction:column}.faq-item{border-bottom:1px solid var(--border);padding:14px 0}.faq-item:first-child{border-top:1px solid var(--border)}.faq-question{font-size:16px;font-weight:600;cursor:pointer}.faq-question::marker{color:var(--subtle)}.faq-answer{margin-top:8px;font-size:15px;line-height:1.6;color:var(--muted)}.faq-answer p{margin:0}.home-faq{max-width:760px;margin-top:16px}.seo-code-block,.code-block,.article-content pre{background:var(--pre-bg);color:var(--pre-ink);border-radius:12px;padding:16px 18px;overflow-x:auto;font-size:14px;line-height:1.6}.seo-code-block code,.code-block code,.article-content pre code{background:none;padding:0;color:inherit;font-size:inherit}.seo-table-container{overflow-x:auto;margin:0 0 24px;border:1px solid var(--border);border-radius:12px}.seo-table,.article-content table{width:100%;border-collapse:collapse;font-size:15px}.seo-table th,.seo-table td,.article-content th,.article-content td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}.seo-table th,.article-content th{background:var(--surface-3);font-weight:600}.btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600;text-decoration:none}.btn:hover{background:var(--surface-3);color:var(--ink)}.btn-primary,.btn.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover,.btn.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px}a.card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);transition:border-color .15s}a.card:hover{border-color:var(--accent);color:var(--ink)}.card-title{font-size:17px;font-weight:600;line-height:1.35}.card-text{font-size:15px;line-height:1.55;color:var(--muted)}.card-meta{font-size:13px;color:var(--subtle)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.section-head h2{margin:0;font-size:28px;letter-spacing:-.01em}.section-head a{font-size:15px;font-weight:500;text-decoration:none}.eyebrow{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle);font-family:var(--font-mono)}.search-box{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;padding:0 16px;height:52px;box-shadow:var(--shadow)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-box i{color:var(--subtle)}.search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:17px}.search-box kbd{font-size:12px;color:var(--subtle);border:1px solid var(--border);border-radius:6px;padding:2px 6px}.search-results{margin-top:10px;display:flex;flex-direction:column;gap:4px}.search-results a{padding:10px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--border);text-decoration:none;color:var(--ink)}.search-results a:hover{border-color:var(--accent)}.search-empty{color:var(--subtle);font-size:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.home-hero{max-width:780px;padding-top:44px}.pill{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:500;color:var(--accent-ink);background:var(--accent-soft);padding:6px 12px;border-radius:999px}.home-hero h1{margin:0;font-size:clamp(36px,6vw,56px);line-height:1.05;letter-spacing:-.02em}.home-hero .lead{margin:20px 0 0;font-size:19px;line-height:1.55;color:var(--muted)}.home-hero label{display:block;margin:32px 0 8px;font-size:14px;font-weight:600}.popular{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}.popular>span{font-size:14px;color:var(--subtle);margin-right:4px}.home-section{margin-top:72px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;margin-top:20px}.cat h3{margin:0 0 12px}.cat ul+h3{margin-top:22px}.cat ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.cat a{color:var(--ink-2);text-decoration:none;font-size:15px}.cat a:hover{color:var(--accent);text-decoration:underline}.facts{margin-top:72px;padding-top:40px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:32px}.facts h2{margin:0 0 8px;font-size:18px}.facts p{margin:0;font-size:15px;line-height:1.6;color:var(--muted)}#latest-posts>:nth-child(n+4){display:none}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin-top:20px}.page-title{margin:12px 0 8px;font-size:40px;letter-spacing:-.02em;line-height:1.1}.page-lead{margin:0;font-size:17px;line-height:1.55;color:var(--muted);max-width:680px}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:28px}.filter-row .search-box{flex:1 1 320px;height:48px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filter-btn{height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:500}.filter-btn:hover{border-color:var(--border-strong)}.filter-btn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.tool-group{margin-top:40px}.tool-group h2{margin:0 0 14px;font-size:20px}.tool-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}.blog-hero{padding-top:20px}.blog-hero h1{margin:0;font-size:40px;letter-spacing:-.02em}.blog-hero p{margin:10px 0 0;font-size:17px;line-height:1.55;color:var(--muted);max-width:680px}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px;margin-top:32px}.blog-card{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;text-decoration:none;color:var(--ink);transition:border-color .15s}.blog-card:hover{border-color:var(--accent);color:var(--ink)}.blog-card-meta{font-size:13px;color:var(--subtle)}.blog-card-meta i{display:none}.blog-card-title{margin:6px 0;font-size:19px;font-weight:600;line-height:1.35}.blog-card-excerpt{margin:0;font-size:15px;line-height:1.55;color:var(--muted)}.blog-card-link{margin-top:auto;padding-top:6px;font-size:15px;font-weight:600;color:var(--accent)}.blog-card-link i{font-size:12px}.blog-card-cover{display:none}@media(min-width:760px){.blog-grid>.blog-card:first-child{grid-column:1 / -1;padding:28px}.blog-grid>.blog-card:first-child .blog-card-title{font-size:26px}.blog-grid>.blog-card.has-cover:first-child{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:1fr auto;column-gap:32px;padding:0;overflow:hidden}.blog-grid>.blog-card.has-cover:first-child .blog-card-cover{display:block;grid-row:1 / 3;width:100%;height:100%;aspect-ratio:1200 / 630;object-fit:cover}.blog-grid>.blog-card.has-cover:first-child>div{align-self:end;padding:32px 32px 0 0}.blog-grid>.blog-card.has-cover:first-child>.blog-card-link{padding:12px 32px 32px 0}}.post-layout{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start}.article-wrapper{flex:999 1 560px;min-width:0;max-width:740px}.post-aside{flex:1 1 240px;max-width:300px;display:flex;flex-direction:column;gap:20px;position:sticky;top:20px}.aside-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.aside-box p{margin:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle)}.aside-box a{display:block;padding:5px 0;font-size:14px;line-height:1.4;color:var(--ink-2);text-decoration:none}.aside-box a:hover{color:var(--accent)}.aside-box a.toc-sub{padding-left:12px}.article-header{margin-bottom:24px}.article-title{margin:14px 0 0;font-size:clamp(30px,4.5vw,44px);line-height:1.12;letter-spacing:-.02em}.article-meta-bar{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:16px;font-size:15px;color:var(--muted)}.article-meta-bar i{color:var(--subtle);margin-right:4px}.md-cover{display:block;width:100%;border-radius:var(--radius);margin:0 0 32px;background:#0f172a}.article-content{font-size:18px;line-height:1.7;color:var(--ink-2)}.article-content>:first-child{margin-top:0}.article-content p{margin:0 0 20px}.article-content h2{margin:44px 0 14px;font-size:26px;line-height:1.25;letter-spacing:-.01em;color:var(--ink);scroll-margin-top:16px}.article-content h3{margin:30px 0 10px;font-size:20px;line-height:1.3;color:var(--ink);scroll-margin-top:16px}.article-content h4{margin:0 0 6px;font-size:17px;color:var(--ink)}.article-content ul,.article-content ol{margin:0 0 20px;padding-left:24px}.article-content li{margin-bottom:8px}.article-content :not(pre)>code{font-size:.86em;background:var(--surface-3);padding:2px 5px;border-radius:5px;overflow-wrap:anywhere}.article-content pre{margin:0 0 24px}.article-content blockquote{margin:0 0 20px;padding:4px 18px;border-left:3px solid var(--border-strong);color:var(--muted)}.article-content hr{border:0;border-top:1px solid var(--border);margin:32px 0}.article-content table{margin:0 0 24px;display:block;overflow-x:auto}.article-content img{border-radius:10px}.post-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:8px 0 28px;padding:18px 20px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--border);font-size:15px;line-height:1.55}.post-cta>div{flex:1 1 300px}.post-cta h3,.post-cta h4{margin:0 0 4px;font-size:17px}.post-cta p{margin:0 0 12px}.post-cta p:last-child{margin-bottom:0}.post-cta>div>span:first-child{display:none}.post-cta .btn{flex:none;margin:4px 8px 0 0}.post-cta>h3{flex:1 0 100%}.post-note{margin:0 0 24px;padding:14px 18px;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 10px 10px 0;font-size:16px}.post-note>:last-child{margin-bottom:0}.article-content .faq-list{margin:0 0 24px}.article-content .faq-list>div{border-bottom:1px solid var(--border);padding:16px 0}.article-content .faq-list>div:first-child{border-top:1px solid var(--border)}.article-content .faq-list h3,.article-content .faq-list h4{margin:0 0 6px;font-size:17px}.article-content .faq-list p{margin:0;font-size:16px;color:var(--muted)}.author-box{display:flex;gap:18px;align-items:flex-start;margin-top:40px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px}.author-avatar{flex:none;width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700}.author-box p{margin:0}.author-name{font-size:17px;font-weight:700}.author-box .author-role{margin-top:2px;font-size:14px;color:var(--subtle)}.author-box .author-bio{margin-top:8px;font-size:15px;line-height:1.6;color:var(--ink-2)}.author-box .author-links{margin-top:10px;display:flex;flex-wrap:wrap;gap:16px;font-size:14px;font-weight:500}.site-footer{margin-top:72px;background:var(--surface);border-top:1px solid var(--border)}.footer-inner{max-width:var(--page);margin:0 auto;padding:40px var(--gutter) 28px}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:32px}.footer-brand p{margin:12px 0 0;font-size:14px;line-height:1.6;color:var(--subtle);max-width:300px}.footer-col h2{margin:0 0 12px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle)}.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.footer-col a{font-size:14px;color:var(--ink-2);text-decoration:none}.footer-col a:hover{color:var(--accent);text-decoration:underline}.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--border);font-size:13px;color:var(--subtle)}.toast-container{position:fixed;bottom:20px;right:20px;left:20px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:1000;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;max-width:420px;padding:10px 14px;border-radius:10px;background:var(--ink);color:var(--bg);font-size:14px;box-shadow:var(--shadow-lg);transition:opacity .25s,transform .25s;animation:toast-in .2s ease-out}.toast.error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:820px){:root{--gutter: 16px}.page{padding-top:16px}.tool-head h1{font-size:26px}.tool-sub{font-size:15px}.tool-card{border-radius:14px}.toolbar{padding:10px 12px}.tool-btn{height:44px}.tool-option{margin-left:0}.workspace-area{flex-direction:column;min-height:0}.workspace-area>.pane{flex:none!important}.pane-resizer{display:none}.editor-pane{border-bottom:1px solid var(--border)}.pane-btn{height:44px}.code-textarea{min-height:220px;resize:vertical}.secondary-pane .code-textarea,.html-preview-iframe,.tree-view-container{min-height:300px}.tree-view-container{max-height:60vh}.chip{padding:10px 14px}.page-title,.blog-hero h1{font-size:32px}.post-aside{position:static;max-width:none}.article-content{font-size:17px}.author-box{padding:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
