@font-face{font-family:"DM Sans Fallback";src:local("Arial");ascent-override:94.9%;descent-override:29.66%;line-gap-override:0%;size-adjust:104.53%}@font-face{font-family:"JetBrains Mono Fallback";src:local("Courier New");ascent-override:102.02%;descent-override:30%;line-gap-override:0%;size-adjust:99.98%}:root{--bg:#f8f9f7;--bg-alt:#fafaf8;--surface:#ffffff;--border:#e5e5df;--border-strong:#d3d3c8;--text:#1e1e1a;--text-alt:#2e2e28;--text-secondary:#4e4e47;--text-muted:#7c7c72;--text-placeholder:#9c9c90;--accent:#dc765a;--accent-dark:#b9563f;--accent-darker:#8f3f2e;--accent-soft:#fceeea;--accent-softer:#fdf3f0;--success:#1f7a1f;--success-bg:#e8f5e8;--warning:#e8a020;--warning-bg:#fef2cc;--danger:#c0392b;--danger-bg:#fef2f1;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--radius-pill:999px;--shadow-card:0 1px 3px rgba(0,0,0,.03),0 6px 20px rgba(0,0,0,.05);--font-sans:"DM Sans","DM Sans Fallback",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono","JetBrains Mono Fallback",monospace}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:0 0 var(--radius-sm) 0;z-index:1000;font-weight:600;font-size:.9rem}.skip-link:focus{left:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-alt);line-height:1.6}a{color:var(--accent-dark);text-decoration:none}a:hover{text-decoration:underline}strong{color:var(--text-alt);font-weight:600}ul{list-style:none}img,svg{display:block}header{background:#fff;border-bottom:1px solid var(--border);position:relative}nav.top-nav{max-width:1280px;margin:0 auto;padding:1.1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.15rem;color:var(--text)}.logo:hover{text-decoration:none}.logo-icon{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));display:flex;align-items:center;justify-content:center;color:#fff}.logo-icon svg{width:19px;height:19px}.nav-links-single{color:var(--text-secondary);font-weight:500;font-size:.95rem;padding:.4rem 0}.nav-links-single:hover{color:var(--accent-dark);text-decoration:none}.category-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem 1.1rem;justify-content:flex-end}.tools-dropdown{position:relative}.cat-menu-btn{display:flex;align-items:center;gap:.35rem;background:0 0;border:none;font:inherit;font-weight:500;font-size:.88rem;color:var(--text-secondary);cursor:pointer;padding:.4rem 0;white-space:nowrap}.cat-menu-btn:hover,.cat-menu-btn[aria-expanded=true]{color:var(--accent-dark)}.cat-menu-btn svg{transition:transform .15s ease}.cat-menu-btn[aria-expanded=true] svg{transform:rotate(180deg)}.tools-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);min-width:240px;padding:.5rem;display:none;z-index:100;max-height:70vh;overflow-y:auto}.tools-menu.open{display:block}.tools-menu-group{padding:.5rem .6rem .25rem}.tools-menu a{display:block;padding:.5rem .6rem;border-radius:var(--radius-sm);color:var(--text-alt);font-size:.9rem}.tools-menu a:hover{background:var(--bg-alt);text-decoration:none}.cat-menu{width:440px;max-width:92vw;padding:1.25rem;max-height:none;overflow:visible}.cat-menu-header{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.cat-menu-icon{flex:none;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-.02em}.cat-menu-swatch{flex:none;width:32px;height:32px;border-radius:9px;background:var(--bg-alt);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:3px}.cat-menu-swatch i{width:7px;height:7px;border-radius:50%;display:block;font-style:normal}.cat-menu-swatch i:first-child{background:#dc5a5a}.cat-menu-swatch i:nth-child(2){background:#4f9a67}.cat-menu-swatch i:nth-child(3){background:#4f7fbf}.cat-menu-title{font-weight:700;font-size:.92rem;color:var(--text);line-height:1.3}.cat-menu-tagline{font-size:.75rem;color:var(--text-muted);margin-top:.15rem;line-height:1.3}.cat-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:.05rem .5rem;max-height:360px;overflow-y:auto;margin:0 -.4rem;padding:0 .4rem}.cat-menu-links a{display:block;padding:.42rem .5rem;border-radius:var(--radius-sm);font-size:.84rem;color:var(--text-alt)}.cat-menu-links a:hover{background:var(--bg-alt);color:var(--accent-dark);text-decoration:none}.cat-menu-links a:nth-child(2n){border-left:1px solid var(--border);padding-left:.65rem}.cat-menu-links::-webkit-scrollbar{width:5px}.cat-menu-links::-webkit-scrollbar-track{background:0 0}.cat-menu-links::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.mobile-menu-btn{display:none;background:0 0;border:none;padding:.6rem;color:var(--text);cursor:pointer}.mobile-menu-panel{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);max-height:80vh;overflow-y:auto;padding:.75rem 1.5rem 1.25rem;z-index:99}.mobile-menu-panel.open{display:block}.mobile-menu-panel .tools-menu-group{border-top:1px solid var(--border)}.mobile-menu-panel .tools-menu-group:first-child{border-top:none}.tools-menu-group-header{width:100%;display:flex;align-items:flex-start;gap:.65rem;margin:0;padding:.85rem 0;background:0 0;border:none;font:inherit;text-align:left;cursor:pointer;color:inherit;min-height:44px}.tools-menu-group-header:hover .tools-menu-group-label{color:var(--accent-dark)}.tools-menu-group-text{flex:1 1 auto;min-width:0}.tools-menu-group-label{font-weight:700;font-size:.95rem;color:var(--text);line-height:1.3}.tools-menu-group-tagline{font-size:.78rem;color:var(--text-muted);margin-top:.1rem;line-height:1.3}.mgroup-chevron{flex:none;margin-top:.3rem;color:var(--text-muted);transition:transform .15s ease}.tools-menu-group-header[aria-expanded=true] .mgroup-chevron{transform:rotate(180deg)}.tools-menu-group-links{display:none;padding:0 0 .6rem}.tools-menu-group-links.open{display:block}.mobile-menu-panel a{display:block;padding:.55rem 0;color:var(--text-alt);font-size:.95rem}.tools-menu-group-links a{border-left:2px solid var(--border);padding-left:.75rem;margin-left:.2rem}.mobile-menu-panel a:hover{color:var(--accent-dark);text-decoration:none}@media (max-width:1180px){.category-nav{display:none}.mobile-menu-btn{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}}.breadcrumbs{max-width:1280px;margin:0 auto;padding:.85rem 1.5rem 0}.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;list-style:none;font-size:.82rem;color:var(--text-muted)}.breadcrumbs a{color:var(--text-muted);font-weight:500}.breadcrumbs a:hover{color:var(--accent-dark);text-decoration:none}.breadcrumbs li{display:flex;align-items:center}.breadcrumbs li:not(:last-child)::after{content:"/";margin:0 .5rem;color:var(--border)}.breadcrumbs li[aria-current=page]{color:var(--text-secondary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}.hero{max-width:1280px;margin:0 auto;padding:1.25rem 1.5rem 1rem;text-align:center}.page-hero{max-width:1280px}.hero h1{font-size:clamp(1.75rem,5vw,2.75rem);font-weight:700;color:var(--text);margin-bottom:.75rem;line-height:1.15}.h1-tick{display:inline-block;width:.6em;height:.6em;vertical-align:middle;margin-right:.12em;position:relative;top:-.05em}.hero .subtitle{font-size:1.1rem;color:var(--text-secondary);margin:0 auto 1.25rem}.tool-section{max-width:820px;margin:0 auto;padding:0 1.5rem 1.5rem}.tool-warning{max-width:820px;margin:0 auto 1rem;background:var(--warning-bg);border:1px solid #f0d898;border-radius:var(--radius-md);padding:.85rem 1.1rem;font-size:.85rem;color:#7a5a10}.tool-warning strong{color:#7a5a10}.tool-card{background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.5rem;text-align:left}.tool-field{margin-bottom:1rem}.tool-field label{display:block;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:600;margin-bottom:.5rem}.tool-field input[type=text],.tool-field textarea{width:100%;font-family:var(--font-mono);font-size:.95rem;color:var(--text-alt);background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem .9rem;resize:vertical;min-height:90px}.tool-field input:focus,.tool-field textarea:focus{outline:0;border-color:var(--accent);background:#fff}.tool-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border:none;border-radius:var(--radius-md);font-family:inherit;font-weight:600;font-size:.95rem;padding:.8rem 1.6rem;cursor:pointer;box-shadow:0 2px 8px rgba(220,118,90,.28)}.btn-primary:hover{filter:brightness(1.04)}.btn-secondary{display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-alt);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-md);font-family:inherit;font-weight:500;font-size:.85rem;padding:.83rem 1rem;cursor:pointer}.btn-secondary:hover{background:var(--border)}.output-box{position:relative}.output-box .copy-btn{position:absolute;top:.6rem;right:.6rem;font-size:.75rem}.tool-error{display:none;color:var(--danger);background:var(--danger-bg);border:1px solid #f5bdba;border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.85rem;margin-bottom:1rem}.tool-error.show{display:block}.tool-options{display:flex;flex-wrap:wrap;gap:1rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-secondary)}.tool-options label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.tool-field select{width:100%;font-family:var(--font-sans);font-size:.95rem;color:var(--text-alt);background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .9rem}.tool-field select:focus{outline:0;border-color:var(--accent);background:#fff}.tool-field input[type=text]{min-height:auto}.tool-row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.tool-row .tool-field{flex:1;min-width:140px;margin-bottom:0}.tool-row .tool-field.operator-field{flex:0 0 120px}.code-snippet{max-width:820px;margin:1.5rem auto 0;background:var(--text);border-radius:var(--radius-md);padding:1.25rem 1.5rem;overflow-x:auto}.code-snippet pre{margin:0;font-family:var(--font-mono);font-size:.85rem;line-height:1.6;color:#f0f0eb;white-space:pre}.code-snippet .code-label{display:block;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:#9c9c90;margin-bottom:.6rem}section.block{padding:3rem 0;background:var(--surface)}section.block.alt{background:var(--bg)}.block-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem}.section-header{text-align:center;max-width:1280px;margin:0 auto 2rem;padding:0 1.5rem}.pill-label{display:inline-block;background:var(--accent-softer);color:var(--accent-darker);border-radius:var(--radius-pill);padding:.3rem .8rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.9rem}.section-header h2{font-size:clamp(1.5rem,3.5vw,2.1rem);font-weight:700;color:var(--text);margin-bottom:.6rem}.section-header p{color:var(--text-secondary);font-size:1.02rem}.content-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem 2.5rem}.content-card .article{max-width:none;margin:0;padding:0}.content-card .article h2{font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:700;color:var(--text);margin:0 0 .9rem;line-height:1.25}.content-card .article h3{font-size:1.3rem;line-height:1.35}.content-card .article li,.content-card .article p{font-size:1.02rem;line-height:1.7}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.5rem 0}.table-scroll table{margin:0}.article table{min-width:100%;border-collapse:separate;border-spacing:0;margin:1.5rem 0;font-size:.92rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden}.article thead{background:var(--bg-alt)}.article th{color:var(--text);font-weight:700;text-align:left;padding:.7rem .95rem;border-bottom:1px solid var(--border-strong)}.article td{padding:.65rem .95rem;border-bottom:1px solid var(--border-strong);color:var(--text-secondary);vertical-align:top}.article td:not(:last-child),.article th:not(:last-child){border-right:1px solid var(--border-strong)}.article tbody tr:last-child td{border-bottom:none}.article tbody tr:nth-child(2n){background:var(--bg-alt)}.article tbody tr:hover td{background:var(--accent-softer)}.split{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;max-width:1280px;margin:0 auto;padding:0 1.5rem}.split .pill-label{margin-bottom:.9rem}.split h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;color:var(--text);margin-bottom:.75rem;line-height:1.25}.split>div:first-child>p{color:var(--text-secondary);margin-bottom:1.25rem}.numbered-list{display:flex;flex-direction:column;gap:.6rem}.numbered-item{display:flex;gap:.9rem;align-items:flex-start;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem 1rem}.numbered-item .num{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--accent-soft);color:var(--accent-darker);font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center}.numbered-item strong{display:block;font-size:.95rem;margin-bottom:.15rem}.numbered-item span{font-size:.85rem;color:var(--text-muted)}.visual-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;min-height:260px;min-width:0;display:flex;align-items:center;justify-content:center;overflow-x:auto}.visual-panel .mono-sample{font-family:var(--font-mono);font-size:1.1rem;color:var(--accent-darker);text-align:center;line-height:2;white-space:pre}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:1280px;margin:0 auto;padding:0 1.5rem}.step-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.step-card .num{width:32px;height:32px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-size:.95rem}.step-card h3{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:.4rem}.step-card p{font-size:.9rem;color:var(--text-secondary)}.article{max-width:1280px;margin:0 auto;padding:0 1.5rem}.article h2{font-size:1.4rem;font-weight:700;color:var(--text);margin:2rem 0 .75rem}.article h2:first-child{margin-top:0}.article p{color:var(--text-secondary);margin-bottom:1rem}.icon-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:1280px;margin:0 auto;padding:0 1.5rem}.icon-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem}.icon-card .icon-badge{width:38px;height:38px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:.85rem;font-size:1.1rem;background:var(--accent-soft)}.icon-card h3{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.35rem}.icon-card p{font-size:.88rem;color:var(--text-secondary)}.faq-list{max-width:1280px;margin:0 auto;padding:0 1.5rem}.faq-item{padding:1.25rem 0;border-bottom:1px solid var(--border)}.faq-item:last-child{border-bottom:none}.faq-item h3{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.4rem}.faq-item p{font-size:.92rem;color:var(--text-secondary)}footer{background:var(--bg-alt);border-top:1px solid var(--border)}.footer-inner{max-width:1280px;margin:0 auto;padding:0 1.5rem}.footer-brand-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.25rem;padding:2rem 0;border-bottom:1px solid var(--border)}.footer-logo{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.1rem;color:var(--text)}.footer-tagline{font-size:.85rem;color:var(--text-muted);max-width:420px;padding-left:1.25rem;border-left:1px solid var(--border)}.footer-mega{padding:.5rem 0}.footer-mega-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.5rem;padding:1rem 0;border-top:1px solid var(--border)}.footer-mega-row:first-child{border-top:none}.footer-mega-label{flex:0 0 auto;width:12rem;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--text);border-left:2px solid var(--accent);padding-left:.6rem}.footer-mega-count{font-weight:400;color:var(--text-placeholder);text-transform:none;letter-spacing:normal}.footer-mega-links{display:flex;flex-wrap:wrap;align-items:center;flex:1;min-width:0}.footer-mega-links a{font-size:.85rem;color:var(--text-secondary)}.footer-mega-links a:hover{color:var(--accent-dark);text-decoration:none}.footer-mega-sep{margin:0 .65rem;color:var(--text-muted);font-weight:700}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-placeholder)}.footer-legal-links{display:flex;flex-wrap:wrap;gap:.6rem 1.25rem}.footer-legal-links a{color:var(--text-placeholder)}.footer-legal-links a:hover{color:var(--accent-dark);text-decoration:none}@media (max-width:900px){.split{grid-template-columns:1fr;gap:1.75rem}.steps-grid{grid-template-columns:1fr}.icon-card-grid{grid-template-columns:1fr}.footer-mega-row{flex-direction:column;gap:.5rem}.footer-mega-label{width:auto}}@media (max-width:768px){nav.top-nav{padding:.6rem 1rem}.nav-links{gap:1rem}.mobile-menu-btn{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}.breadcrumbs{padding:.6rem 1rem 0;font-size:.78rem}.hero{padding:.75rem 1rem .5rem}.hero h1{font-size:1.625rem;margin-bottom:.5rem}.hero .subtitle{font-size:.95rem;margin-bottom:1rem}.tool-section{padding:0 .25rem 1rem}.tool-card{padding:1.1rem}section.block{padding:2rem 0}.article,.faq-list,.icon-card-grid,.section-header,.split,.steps-grid{padding:0 1rem}.block-inner{padding:0 .25rem}.content-card{padding:1rem}}