:root{--bg: #f6f6fb;--bg-alt: #eeeef8;--surface: #ffffff;--surface-2: #f8f8fd;--ink: #15142b;--ink-2: #33334d;--muted: #5d5f78;--line: #e3e3ef;--line-2: #d4d4e4;--brand: #5b4cf0;--brand-ink: #ffffff;--brand-soft: #ecebff;--brand-2: #00a991;--zest: #ffb020;--ok: #0f9d6a;--ok-soft: #e3f7ee;--warn: #b25e00;--warn-soft: #fff3df;--err: #d23a3a;--err-soft: #fde9e9;--info-soft: #eaf1ff;--shadow-1: 0 1px 2px rgba(20, 20, 50, .06), 0 1px 1px rgba(20, 20, 50, .04);--shadow-2: 0 10px 30px -12px rgba(40, 30, 120, .25), 0 2px 6px rgba(20, 20, 50, .06);--shadow-3: 0 24px 60px -20px rgba(40, 30, 120, .35);--radius: 16px;--radius-sm: 10px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--cat-pdf: #e5484d;--cat-docs: #2f6bff;--cat-sheets: #16a34a;--cat-img: #d6409f;--cat-text: #e8890c;--cat-dev: #0d9488;--cat-calc: #7c3aed;--cat-gen: #0891b2;--cat-brand: #5b4cf0;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d0d1a;--bg-alt: #121225;--surface: #17172b;--surface-2: #1d1d34;--ink: #eeeefa;--ink-2: #cfd0e6;--muted: #a2a4c2;--line: #2a2a45;--line-2: #37375a;--brand: #8b7dff;--brand-ink: #0d0d1a;--brand-soft: #25224d;--brand-2: #2dd4bf;--ok-soft: #12352a;--warn-soft: #3a2a10;--err-soft: #3d1818;--info-soft: #1a2442;--ok: #34d399;--warn: #fbbf24;--err: #f87171;--shadow-2: 0 10px 30px -12px rgba(0, 0, 0, .6);--shadow-3: 0 24px 60px -20px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--bg: #0d0d1a;--bg-alt: #121225;--surface: #17172b;--surface-2: #1d1d34;--ink: #eeeefa;--ink-2: #cfd0e6;--muted: #a2a4c2;--line: #2a2a45;--line-2: #37375a;--brand: #8b7dff;--brand-ink: #0d0d1a;--brand-soft: #25224d;--brand-2: #2dd4bf;--ok-soft: #12352a;--warn-soft: #3a2a10;--err-soft: #3d1818;--info-soft: #1a2442;--ok: #34d399;--warn: #fbbf24;--err: #f87171;--shadow-2: 0 10px 30px -12px rgba(0, 0, 0, .6);--shadow-3: 0 24px 60px -20px rgba(0, 0, 0, .7);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.6;color:var(--ink);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}img,svg,canvas{max-width:100%}a{color:var(--brand);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}h1,h2,h3{line-height:1.2;letter-spacing:-.02em;margin:0 0 .5em}h1{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800}h2{font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:750}h3{font-size:1.05rem;font-weight:700}p{margin:0 0 1em}code,kbd,pre{font-family:var(--mono);font-size:.92em}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.skip-link{position:absolute;left:12px;top:-60px;background:var(--brand);color:var(--brand-ink);padding:10px 16px;border-radius:10px;z-index:100;font-weight:700}.skip-link:focus{top:12px}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}@media(min-width:720px){.container{padding:0 24px}}.container.narrow{max-width:820px}.muted{color:var(--muted)}.small{font-size:.875rem}.center-text{text-align:center}.icon{flex:none;vertical-align:middle}[hidden]{display:none!important}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:12px;height:64px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none}.brand-name{font-weight:850;font-size:1.18rem;letter-spacing:-.03em}.brand-name span{color:var(--brand)}.logo-mark{display:block;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.brand:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}.brand:hover .logo-bolt{animation:zap .5s ease}@keyframes zap{30%{transform:translateY(-1.5px)}60%{transform:translateY(1px)}}.main-nav{display:flex;align-items:center;gap:2px;margin-left:12px}.nav-link{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border-radius:10px;color:var(--ink-2);text-decoration:none;font-weight:600;font-size:.95rem;background:none;border:0;cursor:pointer;font-family:inherit}.nav-link:hover{background:var(--surface);color:var(--ink)}.nav-dropdown{position:relative}.nav-dropdown .chev{transform:rotate(90deg);transition:transform .2s}.nav-dropdown.open .chev{transform:rotate(-90deg)}.mega{position:absolute;top:calc(100% + 10px);left:0;width:min(880px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-3);padding:20px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s}.nav-dropdown.open .mega{opacity:1;visibility:visible;transform:none}.mega-head{display:flex;align-items:center;gap:8px;font-weight:750;color:var(--ink);text-decoration:none;margin-bottom:6px;font-size:.95rem}.mega ul{list-style:none;margin:0;padding:0 0 0 36px}.mega li a{display:block;padding:3px 0;color:var(--muted);text-decoration:none;font-size:.9rem}.mega li a:hover{color:var(--brand)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.search-trigger{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:.92rem;cursor:pointer;min-width:40px;justify-content:center}.search-trigger:hover{border-color:var(--line-2);color:var(--ink)}.search-trigger kbd{border:1px solid var(--line);border-radius:6px;padding:0 6px;font-size:.75rem;background:var(--surface-2)}@media(min-width:900px){.search-trigger{min-width:220px;justify-content:flex-start}.search-trigger kbd{margin-left:auto}}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:inline-grid;place-items:center;cursor:pointer}.icon-btn:hover{color:var(--brand);border-color:var(--line-2)}.when-dark{display:none}:root[data-theme=dark] .when-dark{display:inline}:root[data-theme=dark] .when-light{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .when-dark{display:inline}:root:not([data-theme=light]) .when-light{display:none}}.show-sm{display:none}@media(max-width:760px){.hide-sm{display:none!important}.show-sm{display:inline-grid}.main-nav{display:none}}.mobile-menu{border-top:1px solid var(--line);background:var(--surface);padding:8px 0 14px;animation:drop .2s ease}@keyframes drop{0%{opacity:0;transform:translateY(-6px)}}.mobile-link{display:flex;align-items:center;gap:10px;padding:10px 4px;color:var(--ink);text-decoration:none;font-weight:650;border-bottom:1px solid var(--line)}.mobile-link:last-child{border-bottom:0}.cat-dot,.tool-icon,.tool-hero-icon,.cat-card-icon{display:inline-grid;place-items:center;flex:none;border-radius:9px;width:28px;height:28px;color:#fff;background:var(--c, var(--brand))}.cat-pdf{--c: var(--cat-pdf)}.cat-docs{--c: var(--cat-docs)}.cat-sheets{--c: var(--cat-sheets)}.cat-img{--c: var(--cat-img)}.cat-text{--c: var(--cat-text)}.cat-dev{--c: var(--cat-dev)}.cat-calc{--c: var(--cat-calc)}.cat-gen{--c: var(--cat-gen)}.cat-brand{--c: var(--cat-brand)}.cat-pdf-soft{--c: var(--cat-pdf)}.cat-docs-soft{--c: var(--cat-docs)}.cat-sheets-soft{--c: var(--cat-sheets)}.cat-img-soft{--c: var(--cat-img)}.cat-text-soft{--c: var(--cat-text)}.cat-dev-soft{--c: var(--cat-dev)}.cat-calc-soft{--c: var(--cat-calc)}.cat-gen-soft{--c: var(--cat-gen)}.hero{position:relative;overflow:hidden;padding:64px 0 56px;isolation:isolate}@media(min-width:900px){.hero{padding:96px 0 80px}}.hero-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:float 18s ease-in-out infinite}.b1{width:420px;height:420px;background:#8b7dff;top:-140px;left:-100px}.b2{width:360px;height:360px;background:#2dd4bf;top:-60px;right:-120px;animation-delay:-6s;opacity:.4}.b3{width:300px;height:300px;background:#ffb020;bottom:-180px;left:40%;animation-delay:-11s;opacity:.28}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,30px) scale(1.06)}66%{transform:translate(-30px,15px) scale(.96)}}.float-chip{position:absolute;font-weight:800;font-size:.78rem;letter-spacing:.06em;padding:6px 12px;border-radius:999px;background:var(--surface);color:var(--muted);border:1px solid var(--line);box-shadow:var(--shadow-2);animation:bob 7s ease-in-out infinite;opacity:.9}.c1{top:18%;left:7%;color:var(--cat-pdf)}.c2{top:66%;left:4%;color:var(--cat-docs);animation-delay:-2s}.c3{top:14%;right:8%;color:var(--cat-sheets);animation-delay:-4s}.c4{top:72%;right:6%;color:var(--cat-img);animation-delay:-1s}.c5{top:44%;left:2%;color:var(--cat-dev);animation-delay:-5s}.c6{top:42%;right:3%;color:var(--cat-text);animation-delay:-3s}@media(max-width:1000px){.float-chip{display:none}}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(2deg)}}.hero-inner{text-align:center;max-width:860px}.eyebrow{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.85rem;color:var(--brand);background:var(--brand-soft);padding:6px 14px;border-radius:999px;margin-bottom:20px}.hero-title{font-size:clamp(2.2rem,6vw,4rem);line-height:1.05;letter-spacing:-.035em;margin-bottom:18px}.grad-text{background:linear-gradient(90deg,#5b4cf0,#00a991,#5b4cf0);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}:root[data-theme=dark] .grad-text{background-image:linear-gradient(90deg,#a99fff,#2dd4bf,#a99fff)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .grad-text{background-image:linear-gradient(90deg,#a99fff,#2dd4bf,#a99fff)}}@keyframes shimmer{to{background-position:200% center}}.hero-sub{font-size:clamp(1.02rem,1.8vw,1.2rem);color:var(--muted);max-width:640px;margin:0 auto 28px}.hero-search{position:relative;max-width:640px;margin:0 auto}.hero-search input[type=search]{width:100%;height:62px;border-radius:18px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:1.08rem;padding:0 20px 0 56px;box-shadow:var(--shadow-2);transition:border-color .2s,box-shadow .2s}.hero-search input[type=search]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 18%,transparent),var(--shadow-2)}.hero-search-icon{position:absolute;left:20px;top:20px;color:var(--muted)}.search-results{list-style:none;margin:8px 0 0;padding:6px;position:absolute;left:0;right:0;z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-3);text-align:left;max-height:60vh;overflow:auto}.search-results li a,.search-results li.empty{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}.search-results li a[aria-selected=true],.search-results li a:hover{background:var(--brand-soft)}.search-results .r-sum{display:block;color:var(--muted);font-size:.85rem}.search-results li.empty{color:var(--muted)}.shortcut-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px}.chip{display:inline-flex;align-items:center;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);text-decoration:none;font-weight:600;font-size:.9rem;transition:transform .2s,border-color .2s,color .2s}.chip:hover{transform:translateY(-2px);border-color:var(--brand);color:var(--brand)}.section{padding:48px 0}@media(min-width:900px){.section{padding:64px 0}}.section.alt{background:var(--bg-alt)}.section-sm{padding:28px 0 8px}.section-title{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:20px;display:flex;align-items:center;gap:10px}.section-title.sm{font-size:1.2rem;margin-bottom:14px}.section-title.center{justify-content:center;text-align:center}.section-title a{color:inherit;text-decoration:none}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.more-link{display:inline-flex;align-items:center;gap:6px;font-weight:650;text-decoration:none}.more-link:hover .icon{transform:translate(3px)}.more-link .icon{transition:transform .2s}.promise-strip{border-block:1px solid var(--line);background:var(--surface)}.promise-grid{display:grid;grid-template-columns:1fr;gap:4px;padding-block:20px}@media(min-width:760px){.promise-grid{grid-template-columns:repeat(3,1fr);gap:24px}}.promise{display:flex;gap:14px;align-items:flex-start;padding:8px 0}.promise strong{display:block}.promise span:not(.promise-icon){color:var(--muted);font-size:.92rem}.promise-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:none}.tool-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tool-grid.compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.tool-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,border-color .25s}.tool-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.tool-card-link{display:flex;gap:14px;align-items:flex-start;padding:18px 48px 18px 18px;color:var(--ink);text-decoration:none;border-radius:inherit;height:100%}.tool-card.compact .tool-card-link{padding:12px 44px 12px 12px;align-items:center}.tool-icon{width:44px;height:44px;border-radius:13px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.tool-card.compact .tool-icon{width:36px;height:36px;border-radius:10px}.tool-card:hover .tool-icon{transform:rotate(-6deg) scale(1.08)}.tool-card-body{display:flex;flex-direction:column;gap:3px;min-width:0}.tool-card-title{font-weight:750;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tool-card-desc{color:var(--muted);font-size:.9rem;line-height:1.45}.badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:6px;background:var(--warn-soft);color:var(--warn)}.badge.lg{font-size:.75rem;vertical-align:middle;margin-left:10px}.fav-btn{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:10px;border:0;background:transparent;color:var(--line-2);display:grid;place-items:center;cursor:pointer;transition:color .2s,transform .2s}.fav-btn:hover{color:var(--zest);transform:scale(1.12)}.fav-btn[aria-pressed=true]{color:var(--zest)}.fav-btn[aria-pressed=true] svg{fill:currentColor}.fav-btn.pop svg{animation:pop .4s cubic-bezier(.34,1.56,.64,1)}.fav-btn.lg{position:static;width:44px;height:44px;border:1px solid var(--line);background:var(--surface);color:var(--muted);flex:none}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.3)}to{transform:scale(1)}}.cat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.cat-card{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}.cat-card:after{content:"";position:absolute;width:160px;height:160px;right:-60px;top:-60px;border-radius:50%;background:var(--c);opacity:.08;transition:transform .4s,opacity .4s}.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}.cat-card:hover:after{transform:scale(1.5);opacity:.14}.cat-card-icon{width:50px;height:50px;border-radius:14px;margin-bottom:6px}.cat-card-name{font-weight:800;font-size:1.1rem}.cat-card-desc{color:var(--muted);font-size:.92rem}.cat-card-count{margin-top:auto;padding-top:8px;color:var(--c);font-weight:700;font-size:.88rem;display:inline-flex;align-items:center;gap:4px}.how-steps{list-style:none;padding:0;margin:0;display:grid;gap:18px;grid-template-columns:1fr;counter-reset:s}@media(min-width:760px){.how-steps{grid-template-columns:repeat(3,1fr)}}.how-steps li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;counter-increment:s}.how-steps li:before{content:counter(s);position:absolute;top:14px;left:16px;font-weight:900;font-size:.85rem;color:var(--muted)}.how-steps span:last-child{color:var(--muted);font-size:.93rem}.how-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-soft),color-mix(in srgb,var(--brand-2) 18%,transparent));color:var(--brand);margin-bottom:8px}.how-steps li.in .how-icon{animation:wiggle .8s ease .2s}@keyframes wiggle{25%{transform:rotate(-8deg) scale(1.05)}50%{transform:rotate(6deg)}75%{transform:rotate(-3deg)}}.guide-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.guide-card{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .25s,box-shadow .25s}.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}.guide-meta{font-size:.8rem;color:var(--brand);font-weight:700;display:inline-flex;gap:6px;align-items:center}.guide-title{font-weight:800;font-size:1.05rem;line-height:1.3}.guide-sum{color:var(--muted);font-size:.92rem}.privacy-box{display:flex;gap:28px;align-items:center;padding:32px;border-radius:24px;background:linear-gradient(135deg,var(--brand-soft),color-mix(in srgb,var(--brand-2) 12%,var(--surface)));border:1px solid var(--line)}.privacy-box p{color:var(--ink-2)}.privacy-art{flex:none;width:100px;height:100px;border-radius:28px;display:grid;place-items:center;background:var(--surface);color:var(--brand);box-shadow:var(--shadow-2)}@media(max-width:640px){.privacy-box{flex-direction:column;text-align:center;padding:24px}}.personal{padding-top:32px;padding-bottom:0}.personal-cols{display:grid;gap:24px}.faq{display:grid;gap:10px}.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 18px;transition:border-color .2s}.faq-item[open]{border-color:color-mix(in srgb,var(--brand) 40%,var(--line))}.faq-item summary{cursor:pointer;list-style:none;padding:16px 28px 16px 0;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";position:absolute;right:0;top:12px;font-size:1.4rem;color:var(--brand);transition:transform .25s}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item summary h3{display:inline;font-size:1rem;margin:0}.faq-item p{color:var(--ink-2);margin:0 0 16px}.faq-item[open] p{animation:drop .25s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;border-radius:13px;border:1px solid transparent;font:inherit;font-weight:700;font-size:.98rem;cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--brand-ink);box-shadow:0 6px 18px -6px color-mix(in srgb,var(--brand) 70%,transparent)}.btn-primary:hover:not(:disabled){box-shadow:0 10px 24px -8px color-mix(in srgb,var(--brand) 80%,transparent);transform:translateY(-1px)}.btn-success{background:var(--ok);color:#fff;box-shadow:0 6px 18px -6px color-mix(in srgb,var(--ok) 70%,transparent)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn-sm{height:36px;padding:0 12px;font-size:.88rem;border-radius:10px}.btn-lg{height:54px;padding:0 28px;font-size:1.05rem}.link-btn{background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline;padding:0}.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:18px 0 0;margin:0;font-size:.86rem;color:var(--muted)}.breadcrumbs li+li:before{content:"/";margin-right:6px;opacity:.5}.breadcrumbs a{color:var(--muted);text-decoration:none}.breadcrumbs a:hover{color:var(--brand)}.page-hero{display:flex;gap:18px;align-items:flex-start;padding:28px;margin:18px 0 26px;border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--c, var(--brand)) 10%,var(--surface)),var(--surface));border:1px solid var(--line)}.page-hero.plain{background:none;border:0;padding:18px 0 0}.page-hero h1{margin-bottom:8px}.lead{font-size:1.1rem;color:var(--muted)}.tool-hero-icon{width:58px;height:58px;border-radius:17px;box-shadow:0 10px 24px -10px var(--c)}.tool-hero{display:flex;gap:18px;align-items:flex-start;margin:20px 0 22px}.tool-hero h1{margin-bottom:8px}.tool-hero>div{flex:1;min-width:0}.tool-intro{color:var(--ink-2);max-width:760px;font-size:1.04rem}.tool-facts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.tool-facts li{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:650;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);padding:4px 10px;border-radius:999px}@media(max-width:640px){.tool-hero{flex-wrap:wrap}.tool-hero-icon{width:48px;height:48px}.tool-hero .fav-btn.lg{position:absolute;right:16px}.tool-hero{position:relative}}.tool-shell{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow-2);margin-bottom:36px;min-height:260px}@media(min-width:720px){.tool-shell{padding:28px}}.tool-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:220px;color:var(--muted)}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.tool-content{display:grid;gap:32px;grid-template-columns:1fr;padding-bottom:56px}@media(min-width:1000px){.tool-content{grid-template-columns:minmax(0,1fr) 320px}}.tool-aside{display:flex;flex-direction:column;gap:18px}.aside-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.aside-box .tool-grid.compact{grid-template-columns:1fr}.aside-h{font-size:1rem;margin-bottom:12px}.aside-links{list-style:none;margin:0;padding:0;display:grid;gap:10px}.aside-links.row{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.aside-links a{display:flex;gap:8px;align-items:flex-start;text-decoration:none;font-weight:600;line-height:1.4}.prose{min-width:0}.prose h2{margin-top:1.8em}.prose h1+p,.prose>h2:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.35em 0}.step-list{counter-reset:st;list-style:none;padding-left:0!important}.step-list li{counter-increment:st;position:relative;padding-left:44px;margin:.8em 0;min-height:30px}.step-list li:before{content:counter(st);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-weight:800;display:grid;place-items:center;font-size:.9rem}.limit-list li::marker{color:var(--warn)}.prose table,.formats{width:100%;border-collapse:collapse;font-size:.94rem}.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.prose thead th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.formats th{width:140px;color:var(--muted);font-weight:650}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);margin:1em 0}.table-wrap table{margin:0}.answer-box{border-left:4px solid var(--brand);background:var(--brand-soft);padding:16px 20px;border-radius:0 14px 14px 0;margin:18px 0 8px}.answer-box strong{display:block;margin-bottom:4px;color:var(--brand);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.answer-box p{margin:0}.guide-byline{color:var(--muted);font-size:.9rem;display:flex;align-items:center;gap:6px}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:12px;background:var(--info-soft);color:var(--ink);font-size:.94rem;margin:12px 0}.notice p{margin:0}.notice .icon{margin-top:2px}.notice.warn{background:var(--warn-soft)}.notice.warn .icon{color:var(--warn)}.notice.error{background:var(--err-soft)}.notice.error .icon{color:var(--err)}.notice.ok{background:var(--ok-soft)}.notice.ok .icon{color:var(--ok)}.notice.tip .icon{color:var(--zest)}.notice.info .icon{color:var(--brand)}.notice ul{margin:4px 0 0;padding-left:18px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}.field-row{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:600px){.field-row{grid-template-columns:1fr 1fr}.field-row.three{grid-template-columns:repeat(3,1fr)}}label,.label{font-weight:650;font-size:.92rem}input[type=text],input[type=email],input[type=search],input[type=number],input[type=url],input[type=tel],input[type=password],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-2);border-radius:11px;padding:10px 12px;min-height:44px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.5}textarea.mono{font-family:var(--mono);font-size:.88rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}input[type=range]{accent-color:var(--brand);width:100%}input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:18px;height:18px}input[type=color]{width:48px;height:40px;border:1.5px solid var(--line-2);border-radius:10px;padding:3px;background:var(--surface)}.field-hint{font-size:.82rem;color:var(--muted);margin:0}.check{display:inline-flex;align-items:center;gap:8px;font-weight:550;cursor:pointer}.hp{position:absolute;left:-9999px}.form-status{margin-top:12px;font-weight:650}.form-status.ok{color:var(--ok)}.form-status.err{color:var(--err)}.contact-form{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;margin:20px 0}.dropzone{position:relative;border:2.5px dashed var(--line-2);border-radius:20px;padding:36px 20px;text-align:center;background:var(--surface-2);transition:border-color .2s,background .2s,transform .2s;cursor:pointer}.dropzone:hover{border-color:var(--brand)}.dropzone.drag{border-color:var(--brand);background:var(--brand-soft);transform:scale(1.01)}.dropzone.drag .dz-icon{animation:bounce .8s ease infinite}.dropzone.small{padding:18px}.dz-icon{width:72px;height:72px;border-radius:22px;margin:0 auto 14px;display:grid;place-items:center;background:var(--c, var(--brand));color:#fff;box-shadow:0 14px 30px -12px var(--c, var(--brand))}.dropzone.small .dz-icon{width:44px;height:44px;border-radius:14px;margin-bottom:8px}@keyframes bounce{50%{transform:translateY(-8px)}}.dz-title{font-weight:800;font-size:1.15rem;margin-bottom:4px}.dz-sub{color:var(--muted);font-size:.9rem;margin:8px 0 0}.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:8px}.file-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);animation:slideIn .3s cubic-bezier(.34,1.56,.64,1);transition:box-shadow .2s,transform .2s}.file-item.dragging{opacity:.5}.file-item.over{box-shadow:0 0 0 2px var(--brand)}@keyframes slideIn{0%{opacity:0;transform:translateY(8px) scale(.98)}}.file-item .grip{cursor:grab;color:var(--muted)}.file-badge{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:.68rem;font-weight:900;color:#fff;background:var(--c, var(--brand));letter-spacing:.04em;overflow:hidden}.file-badge img{width:100%;height:100%;object-fit:cover}.file-meta{flex:1;min-width:0;display:flex;flex-direction:column}.file-name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-sub{color:var(--muted);font-size:.82rem}.file-actions{display:flex;gap:4px;flex:none}.mini-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer}.mini-btn:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.mini-btn:disabled{opacity:.35;cursor:default}.mini-btn.danger:hover:not(:disabled){color:var(--err);border-color:var(--err)}.options{display:grid;gap:16px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);margin:16px 0}.segmented{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:13px;background:var(--bg-alt);border:1px solid var(--line)}.segmented button{border:0;background:transparent;color:var(--ink-2);font:inherit;font-weight:650;font-size:.9rem;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-1)}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.progress{height:10px;border-radius:999px;background:var(--bg-alt);overflow:hidden;margin:14px 0 6px}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand-2));transition:width .25s ease}.progress-label{font-size:.86rem;color:var(--muted)}.result{position:relative;margin-top:18px;padding:22px;border-radius:20px;background:linear-gradient(135deg,var(--ok-soft),var(--surface));border:1px solid color-mix(in srgb,var(--ok) 35%,var(--line));animation:rise .45s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.98)}}.result-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.result-check{width:48px;height:48px;flex:none;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;animation:pop .5s cubic-bezier(.34,1.56,.64,1) .1s both}.result-title{font-weight:800;font-size:1.12rem}.result-sub{color:var(--muted);font-size:.9rem}.confetti{position:absolute;inset:0;pointer-events:none}.confetti i{position:absolute;top:30%;left:40px;width:8px;height:12px;border-radius:2px;opacity:0;animation:confetti 1.1s ease-out forwards}@keyframes confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r))}}.size-compare{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-weight:650}.saving{padding:3px 10px;border-radius:999px;background:var(--ok);color:#fff;font-size:.82rem}.saving.neg{background:var(--warn)}.thumbs{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));margin:16px 0}.thumb{position:relative;border:2px solid var(--line);border-radius:14px;background:var(--surface);padding:8px 8px 6px;text-align:center;transition:border-color .2s,transform .2s,box-shadow .2s;animation:slideIn .3s ease both;-webkit-user-select:none;user-select:none}.thumb.selectable{cursor:pointer}.thumb.selected{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent)}.thumb.dragging{opacity:.4}.thumb.over{transform:scale(1.04);border-color:var(--brand-2)}.thumb-img{height:130px;display:grid;place-items:center;overflow:hidden}.thumb-img canvas,.thumb-img img{max-height:130px;max-width:100%;box-shadow:var(--shadow-1);border:1px solid var(--line);background:#fff;transition:transform .3s ease}.thumb-num{font-size:.8rem;font-weight:700;color:var(--muted);margin-top:4px}.thumb-check{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;animation:pop .3s ease}.thumb-tools{display:flex;justify-content:center;gap:4px;margin-top:6px}.thumb-tools .mini-btn{width:28px;height:28px;border-radius:8px}.thumb-placeholder{width:80px;height:110px;border-radius:4px;background:linear-gradient(90deg,var(--bg-alt),var(--surface-2),var(--bg-alt));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.data-preview{overflow:auto;max-height:380px;border:1px solid var(--line);border-radius:14px;background:var(--surface);margin:12px 0}.data-preview table{border-collapse:collapse;font-size:.86rem;width:max-content;min-width:100%}.data-preview th,.data-preview td{padding:6px 10px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;text-align:left}.data-preview thead th{position:sticky;top:0;background:var(--surface-2);z-index:1;font-weight:750}.data-preview .rownum{color:var(--muted);background:var(--surface-2);font-variant-numeric:tabular-nums}.data-preview td.num{text-align:right;font-variant-numeric:tabular-nums}.preview-note{font-size:.82rem;color:var(--muted)}.stat-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:16px 0}.stat{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:14px}.stat-v{font-size:1.6rem;font-weight:850;letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:block}.stat-l{color:var(--muted);font-size:.82rem;font-weight:600}.stat.hi{background:var(--brand-soft);border-color:transparent}.stat.hi .stat-v{color:var(--brand)}.calc-card{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--surface-2);margin-bottom:14px}.calc-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:1.02rem}.calc-row input{width:140px;min-width:0;flex:0 1 140px}.calc-result{font-size:1.5rem;font-weight:850;color:var(--brand);margin-top:10px;font-variant-numeric:tabular-nums;word-break:break-all}.calc-formula{font-family:var(--mono);font-size:.85rem;color:var(--muted)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.diff-out{white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.7;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface);max-height:520px;overflow:auto}.diff-out.mono{font-family:var(--mono);font-size:.86rem}.diff-out ins{background:color-mix(in srgb,var(--ok) 22%,transparent);text-decoration:none;border-radius:3px}.diff-out del{background:color-mix(in srgb,var(--err) 20%,transparent);border-radius:3px}.code-out{font-family:var(--mono);font-size:.86rem;white-space:pre;overflow:auto;max-height:520px;padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);-moz-tab-size:2;tab-size:2}.two-col{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:860px){.two-col{grid-template-columns:1fr 1fr}}.qr-wrap{display:grid;gap:24px;grid-template-columns:1fr}@media(min-width:860px){.qr-wrap{grid-template-columns:1fr 340px}}.qr-preview{border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--surface-2);text-align:center;align-self:start;position:sticky;top:84px}.qr-preview [role=img] svg{width:100%;max-width:280px;height:auto;border-radius:10px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.qr-preview [role=img] svg.bump{animation:pop .35s ease}.compare-img{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.img-result{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.img-result img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:none;background:repeating-conic-gradient(#ddd 0 25%,#fff 0 50%) 0 0 / 12px 12px}.search-modal{position:fixed;inset:0;z-index:80;background:#0a0a1e73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;padding:10vh 16px 16px;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.search-panel{width:100%;max-width:620px;background:var(--surface);border-radius:20px;box-shadow:var(--shadow-3);border:1px solid var(--line);overflow:hidden;align-self:flex-start;animation:rise .25s ease}.search-panel .sp-input{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line)}.search-panel input[type=search]{border:0;box-shadow:none!important;height:58px;font-size:1.05rem;padding:0;background:transparent}.search-panel .search-results{position:static;border:0;box-shadow:none;border-radius:0;margin:0;max-height:55vh}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:48px 0 24px;margin-top:24px}.footer-grid{display:grid;gap:28px;grid-template-columns:1fr 1fr}@media(min-width:860px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}}.footer-brand{grid-column:1 / -1}@media(min-width:860px){.footer-brand{grid-column:auto}}.footer-brand p{color:var(--muted);font-size:.92rem;margin-top:12px;max-width:320px}.privacy-pill{display:inline-flex!important;align-items:center;gap:6px;background:var(--ok-soft);color:var(--ok)!important;padding:6px 12px;border-radius:999px;font-weight:650;font-size:.82rem!important}.footer-h{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.site-footer ul a{color:var(--ink-2);text-decoration:none;font-size:.93rem}.site-footer ul a:hover{color:var(--brand)}.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.86rem}.heart{color:var(--cat-pdf);fill:currentColor}.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:70;max-width:560px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-3);padding:18px;animation:rise .3s ease}.consent p{font-size:.92rem;color:var(--ink-2)}.filter-bar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line-2);border-radius:14px;padding:0 14px;max-width:480px;margin-bottom:8px;color:var(--muted)}.filter-bar input[type=search]{border:0;box-shadow:none!important;padding-left:0;background:transparent}.filter-empty{padding:30px 0;color:var(--muted)}.notfound{padding:40px 0 60px}.nf-art{font-size:clamp(5rem,18vw,9rem);font-weight:900;letter-spacing:-.05em;line-height:1;background:linear-gradient(135deg,#6d5bff,#00c2a8);-webkit-background-clip:text;background-clip:text;color:transparent}.nf-bolt{display:inline-block;-webkit-text-fill-color:initial;animation:bob 3s ease-in-out infinite}.notfound .tool-grid{text-align:left;margin-top:30px}.ad-slot{min-height:120px;margin:0 0 32px;border:1px dashed var(--line-2);border-radius:14px;display:grid;place-items:center;color:var(--muted);font-size:.75rem}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1),box-shadow .25s,border-color .25s}.js .reveal.in{opacity:1;transform:none}.js .tool-card.reveal.in:hover{transform:translateY(-4px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.js .reveal{opacity:1;transform:none}.blob,.float-chip{animation:none!important}}@media print{.site-header,.site-footer,.tool-aside,.breadcrumbs{display:none}}.rot90{transform:rotate(90deg)}.cat-theme-pdf{--c: var(--cat-pdf)}.cat-theme-docs{--c: var(--cat-docs)}.cat-theme-sheets{--c: var(--cat-sheets)}.cat-theme-img{--c: var(--cat-img)}.cat-theme-text{--c: var(--cat-text)}.cat-theme-dev{--c: var(--cat-dev)}.cat-theme-calc{--c: var(--cat-calc)}.cat-theme-gen{--c: var(--cat-gen)}.result:focus{outline:none}@media(max-width:600px){.calc-row input{width:70px;flex:0 1 70px;padding:8px}.calc-row{gap:6px;font-size:.95rem}}
