@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #172036;--ink-2: #2f3a52;--muted: #586179;--bg: #f7f8fc;--surface: #ffffff;--surface-2: #f1f3f9;--line: #e4e7ef;--line-2: #cfd5e2;--brand: #ea580c;--brand-deep: #c2410c;--brand-darker: #9a3412;--brand-soft: #ffedd5;--brand-tint: #fff7ed;--yellow: #ffc857;--ok: #0f8f6f;--danger: #c62828;--accent: var(--brand-deep);--accent-hover: var(--brand-darker);--accent-soft: var(--brand-soft);--accent-tint: var(--brand-tint);--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--shadow-sm: 0 1px 2px rgba(23, 32, 54, .06), 0 1px 1px rgba(23, 32, 54, .04);--shadow-md: 0 8px 24px -8px rgba(23, 32, 54, .14);--shadow-lg: 0 18px 44px -14px rgba(23, 32, 54, .24);--shadow-xl: 0 30px 70px -24px rgba(23, 32, 54, .35);--font: "Plus Jakarta Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--header-h: 64px}.c-teal{--accent: #0b7f72;--accent-hover: #086a5f;--accent-soft: #cdeee9;--accent-tint: #eaf8f6}.c-red{--accent: #dc2626;--accent-hover: #b91c1c;--accent-soft: #fde0e0;--accent-tint: #fef1f1}.c-indigo{--accent: #4f46e5;--accent-hover: #4338ca;--accent-soft: #e0e0fb;--accent-tint: #f0f0fe}.c-blue{--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #dbe7fd;--accent-tint: #eef4fe}.c-pink{--accent: #be185d;--accent-hover: #9d174d;--accent-soft: #fbd9e7;--accent-tint: #fdeef4}.c-green{--accent: #15803d;--accent-hover: #166534;--accent-soft: #d4efdc;--accent-tint: #ebf8ef}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.65;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{text-wrap:balance;line-height:1.2;margin:0 0 .5em;font-weight:700;letter-spacing:-.015em;color:var(--ink)}h1{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;letter-spacing:-.03em}h2{font-size:clamp(1.3rem,2.4vw,1.65rem)}h3{font-size:1.05rem}p{margin:0 0 1em}a{color:var(--brand-deep);text-underline-offset:3px}a:hover{color:var(--brand-darker)}img,svg{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:16px}@media(min-width:720px){.container{padding-inline:24px}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px}.skip-link:focus{top:12px}.icon{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.tile{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:var(--accent);color:#fff;box-shadow:0 6px 14px -6px var(--accent)}.tile .icon{width:23px;height:23px;stroke-width:2.1}.tile.sm{width:36px;height:36px;border-radius:10px;box-shadow:none}.tile.sm .icon{width:18px;height:18px}.tile.lg{width:60px;height:60px;border-radius:17px}.tile.lg .icon{width:30px;height:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:44px;padding:.55em 1.2em;font-weight:600;font-size:.95rem;text-decoration:none;white-space:nowrap;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.btn:hover{background:var(--surface-2);color:var(--ink);border-color:#b9c1d3}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 16px -8px var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-brand{--accent: var(--brand-deep);--accent-hover: var(--brand-darker)}.btn-sm{min-height:38px;padding:.3em .95em;font-size:.9rem;border-radius:10px}.btn-xl{min-height:58px;padding:.6em 2.1em;font-size:1.15rem;font-weight:700;border-radius:14px}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none}.site-header{position:sticky;top:0;z-index:50;background:#fffffff0;backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.header-inner{display:grid;align-items:center;gap:10px 16px;min-height:var(--header-h);padding-block:10px;grid-template-columns:auto 1fr auto}.logo{grid-column:1;grid-row:1;display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-weight:800;font-size:1.35rem;letter-spacing:-.03em}.logo svg{width:38px;height:38px}.logo b{color:var(--brand-deep);font-weight:800}.header-search{grid-column:2;grid-row:1;min-width:0}.all-tools{grid-column:3;grid-row:1}.mega-btn{display:none}.nav-links{display:none;grid-column:2;grid-row:1;gap:2px}.nav-links a{padding:8px 12px;border-radius:10px;font-weight:600;font-size:.94rem;color:var(--ink-2);text-decoration:none}.nav-links a:hover{background:var(--surface-2);color:var(--ink)}.nav-links a[aria-current=page]{background:var(--brand-soft);color:var(--brand-darker)}.catbar{background:var(--surface);border-bottom:1px solid var(--line)}.catbar-inner{display:flex;gap:8px;overflow-x:auto;padding-block:9px;scrollbar-width:none}.catbar-inner::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:6px 14px 6px 11px;border-radius:999px;font-weight:600;font-size:.9rem;text-decoration:none;color:var(--ink-2);background:var(--surface);border:1px solid var(--line-2)}.chip:hover{background:var(--surface-2);color:var(--ink)}.chip[aria-current=page]{background:var(--ink);border-color:var(--ink);color:#fff}.chip .icon{width:1.05em;height:1.05em}.mega{position:absolute;left:0;right:0;top:100%;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-xl)}.mega[hidden]{display:none}.mega-inner{display:grid;gap:28px 24px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));padding-block:26px 22px}.mega-col h3{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:.98rem}.mega-col h3 a{color:var(--ink);text-decoration:none}.mega-col ul{list-style:none;margin:0;padding:0;display:grid;gap:1px}.mega-col li a{display:block;padding:5px 8px;margin-inline:-8px;border-radius:8px;font-size:.92rem;font-weight:500;color:var(--ink-2);text-decoration:none}.mega-col li a:hover{background:var(--accent-tint);color:var(--accent-hover)}.mega-col .more{font-weight:700;color:var(--accent)}.mega-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:12px 16px;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}@media(min-width:1040px){.header-inner{grid-template-columns:auto auto 1fr auto;gap:10px 20px}.nav-links{display:flex;grid-column:2}.header-search{grid-column:3;justify-self:end;width:min(100%,380px)}.all-tools{display:none}.mega-btn{display:inline-flex;grid-column:4;grid-row:1}.catbar{display:none}}@media(max-width:719px){.header-inner{grid-template-columns:1fr auto}.all-tools{grid-column:2}.header-search{grid-column:1 / -1;grid-row:2}.site-header{position:static}}.search{position:relative}.search-box{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:0 14px;min-height:44px;box-shadow:var(--shadow-sm);color:var(--muted);transition:border-color .15s,box-shadow .15s}.search-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #ea580c38;color:var(--ink)}.search-box input{flex:1;min-width:0;border:0;background:transparent;outline:0;font-weight:500;padding:10px 0;color:var(--ink)}.search-box input::placeholder{color:#7b849a;font-weight:400}.search-box kbd{font:600 .75rem var(--font);padding:1px 7px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:6px;color:var(--muted);background:var(--surface-2)}@media(max-width:719px){.search-box kbd{display:none}}.search-results{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 8px);margin:0;padding:6px;list-style:none;max-height:min(70vh,460px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg)}.search-results[hidden]{display:none}.search-results .group{padding:8px 10px 4px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.search-results a{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink)}.search-results li[aria-selected=true] a,.search-results a:hover{background:var(--brand-tint)}.search-results .r-name{font-weight:700;display:block;line-height:1.3}.search-results .r-sub{font-size:.84rem;color:var(--muted);display:block;line-height:1.35}.search-empty{display:flex;gap:14px;align-items:center;padding:14px}.search-empty img{width:64px;height:64px;flex:none}.search-empty p{margin:0;color:var(--ink-2)}.stage{position:relative;overflow:hidden;color:#fff;background:radial-gradient(520px 260px at 92% -10%,rgba(255,255,255,.16),transparent 70%),radial-gradient(420px 220px at 6% 120%,rgba(0,0,0,.14),transparent 70%),linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%)}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.14) 1.2px,transparent 1.4px);background-size:24px 24px;mask-image:linear-gradient(90deg,transparent 35%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 100%)}.stage .container{position:relative;z-index:1}.stage-inner{padding-block:10px 108px}.stage-inner.short{padding-bottom:44px}.stage .crumbs{margin:8px 0 18px;color:#fffc}.stage .crumbs a{color:#fffc}.stage .crumbs a:hover{color:#fff}.stage h1{color:#fff;margin:0 0 .25em}.stage-lead{color:#ffffffe6;font-size:1.15rem;max-width:34em;margin:0}.stage-title{display:flex;align-items:center;gap:16px;margin-bottom:8px}.stage-title .tile{background:#ffffff2e;box-shadow:none;width:56px;height:56px;border-radius:16px}.stage-title .tile .icon{width:28px;height:28px}.stage-title h1{margin:0;font-size:clamp(2rem,4.6vw,3.1rem)}.stage-dark{--accent: #243b6b;--accent-hover: #172036;background:radial-gradient(600px 300px at 90% 0%,rgba(234,88,12,.28),transparent 70%),linear-gradient(135deg,#243b6b,#172036)}@media(max-width:640px){.stage-lead{padding-right:76px}}.stage-art{display:none;position:absolute;right:max(24px,calc((100vw - 1180px)/2 + 24px));bottom:74px;width:170px;z-index:1}@media(min-width:900px){.stage-art{display:block}}.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(700px 380px at 80% 10%,rgba(234,88,12,.3),transparent 70%),radial-gradient(500px 300px at 0% 100%,rgba(79,70,229,.35),transparent 70%),#172036}.hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.1) 1.2px,transparent 1.4px);background-size:26px 26px}.hero-inner{position:relative;z-index:1;display:grid;gap:8px 32px;align-items:center;grid-template-columns:1fr;padding-block:44px 52px}@media(min-width:940px){.hero-inner{grid-template-columns:1.25fr .75fr;padding-block:68px 76px}}.hero h1{color:#fff;margin-bottom:.4em;font-size:clamp(2.2rem,5vw,3.6rem);max-width:13em}.hero h1 mark{background:none;color:var(--yellow);padding:0}.hero p.lead{font-size:1.15rem;color:#c8d0e6;max-width:31em;margin-bottom:1.5em}.hero .search-box{min-height:62px;border-radius:18px;box-shadow:var(--shadow-xl);border:0}.hero .search-box input{font-size:1.08rem}.hero .search-box .icon{color:var(--brand-deep);width:1.4em;height:1.4em}.hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center}.hero-chips span{font-weight:600;color:#9fa9c4;font-size:.9rem}.hero-chips a{padding:5px 13px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff14;font-weight:600;font-size:.88rem;text-decoration:none;color:#fff;transition:background .15s}.hero-chips a:hover{background:#fff3;color:#fff}.hero-art{position:relative;display:none;justify-self:center;width:min(330px,100%)}@media(min-width:940px){.hero-art{display:block}}.hero-art .mascot-wrap{position:relative;z-index:2}.float-tile{position:absolute;z-index:1;width:58px;height:58px;border-radius:17px;display:grid;place-items:center;color:#fff;background:var(--accent);box-shadow:0 14px 30px -10px #00000080,inset 0 1px #ffffff4d;animation:bob 5s ease-in-out infinite}.float-tile .icon{width:28px;height:28px}.bubble{position:absolute;left:-46px;top:-6px;z-index:3;max-width:190px;background:#fff;color:var(--ink);border-radius:16px 16px 16px 4px;padding:9px 14px;font-weight:600;font-size:.9rem;line-height:1.4;box-shadow:var(--shadow-lg)}.section{padding-block:34px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.section-head h2{margin:0}.section-head a{font-weight:600;font-size:.95rem;white-space:nowrap;text-decoration:none}.section-head a:hover{text-decoration:underline}.cat-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.cat-block{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:176px;padding:20px;text-decoration:none;color:#fff;border-radius:20px;background:linear-gradient(145deg,var(--accent),var(--accent-hover));box-shadow:var(--shadow-md);transition:transform .18s ease,box-shadow .18s ease}.cat-block:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);color:#fff}.cat-block .big-icon{position:absolute;right:-14px;top:-10px;width:118px;height:118px;opacity:.2;stroke-width:1.4;transform:rotate(-12deg);transition:transform .25s}.cat-block:hover .big-icon{transform:rotate(-4deg) scale(1.08)}.cat-block .tile{background:#fff3;box-shadow:none;margin-bottom:auto}.cat-block h3{margin:12px 0 0;font-size:1.15rem;color:#fff}.cat-block p{margin:0;font-size:.88rem;line-height:1.4;color:#ffffffe0}.cat-block .count{display:inline-block;align-self:flex-start;margin-top:8px;padding:2px 10px;border-radius:999px;background:#fff3;font-weight:700;font-size:.78rem}.tool-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}.tool-card{position:relative;display:flex;gap:16px;align-items:flex-start;padding:18px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}.tool-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--accent-soft);color:var(--ink)}.tool-card h3{margin:0 0 4px;font-size:1.05rem;padding-right:22px}.tool-card p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tool-card .go{position:absolute;right:16px;top:20px;color:var(--accent);opacity:0;transform:translate(-4px);transition:.18s}.tool-card:hover .go{opacity:1;transform:none}.trust{display:grid;gap:22px 28px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));padding-top:30px;border-top:1px solid var(--line)}.trust-item{display:flex;gap:12px;align-items:flex-start}.trust-item h3{margin:0 0 2px;font-size:.98rem}.trust-item p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.cta{display:flex;gap:24px;align-items:center;padding:26px 32px;background:linear-gradient(135deg,#ffedd5,#ffd9b8);border-radius:24px}.cta img{width:100px;height:100px;flex:none}.cta h2{margin-bottom:4px;font-size:1.4rem}.cta p{margin:0 0 14px;color:var(--ink-2)}@media(max-width:560px){.cta{flex-direction:column;text-align:center;padding:22px 18px}}.ad{position:relative;margin-block:28px;text-align:center}.ad-label{display:block;margin-bottom:4px;font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8c95aa}.ad-box{display:block;width:100%;overflow:hidden}.ad-banner .ad-box{min-height:100px}.ad-inContent .ad-box{min-height:120px}.ad-sidebar .ad-box{min-height:250px;width:300px;max-width:100%;margin-inline:auto}.ad-sidebar{margin-block:0}.ad-dev .ad-box{display:grid;place-items:center;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:repeating-linear-gradient(45deg,rgba(23,32,54,.025) 0 10px,transparent 10px 20px);color:#8c95aa;font-weight:600;font-size:.85rem}.ad ins.adsbygoogle{display:block}.crumbs{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:18px 0 14px;font-size:.86rem;font-weight:500;color:var(--muted);padding:0;list-style:none}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}.crumbs li+li:before{content:"/";margin-right:8px;opacity:.5}.tool-layout{display:grid;gap:36px;grid-template-columns:minmax(0,1fr);align-items:start;padding-bottom:56px;position:relative;z-index:2;margin-top:-78px}@media(min-width:1040px){.tool-layout{grid-template-columns:minmax(0,1fr) 320px}}.tool-main{position:relative}.mascot-state{filter:drop-shadow(0 0 1.5px rgba(255,255,255,.95)) drop-shadow(0 8px 10px rgba(0,0,0,.22));position:absolute;z-index:3;right:18px;top:-100px;width:124px;height:124px;pointer-events:none;transition:transform .25s ease}.mascot-state.pop{animation:pop .45s ease}@media(max-width:640px){.mascot-state{width:88px;height:88px;top:-72px;right:10px}}.private-note{display:flex;gap:8px;align-items:center;margin-top:14px;font-size:.9rem;font-weight:600;color:var(--ok)}.side{display:none}@media(min-width:1040px){.side{display:block;position:sticky;top:90px;margin-top:96px}}.side-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:20px;box-shadow:var(--shadow-sm)}.side-card h2{font-size:.95rem;margin-bottom:8px}.side-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.side-list a{display:flex;align-items:center;gap:10px;padding:7px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.94rem}.side-list a:hover{background:var(--surface-2)}.side-mascot{display:flex;align-items:center;gap:12px}.side-mascot img{width:60px;height:60px;flex:none}.side-mascot p{margin:0;font-size:.9rem;line-height:1.45;color:var(--ink-2)}.prose{margin-top:44px}.prose p{max-width:72ch;color:var(--ink-2)}.prose h2{margin-bottom:.75em}.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.steps li{counter-increment:s;display:flex;flex-direction:column;gap:12px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;color:var(--ink-2);font-weight:500;line-height:1.55}.steps li:before{content:counter(s);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;font-size:.95rem}.checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px 24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.checks li{display:flex;gap:10px;align-items:flex-start;font-weight:500;color:var(--ink-2)}.checks .icon{color:var(--ok);margin-top:3px}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:8px}.faq details[open]{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.faq summary{cursor:pointer;padding:15px 18px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary .icon{transition:transform .15s;color:var(--muted)}.faq details[open] summary .icon{transform:rotate(180deg)}.faq details p{padding:0 18px 16px;margin:0;color:var(--ink-2)}.page-block{padding-block:8px 64px}.page-head{padding-block:24px 12px}.page-head p{color:var(--muted);font-size:1.08rem;max-width:60ch}.listing{position:relative;z-index:2;margin-top:-64px;padding-bottom:64px}.listing-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);padding:22px}@media(min-width:720px){.listing-card{padding:28px}}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 22px}.filter-bar .chip{background:var(--surface)}.filter-bar .chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.no-match{text-align:center;padding:32px 0;font-weight:600;color:var(--muted)}.no-match img{width:110px;margin-bottom:8px}.site-footer{background:var(--ink);color:#d6dbe9;padding-block:44px 28px;margin-top:24px}.footer-grid{display:grid;gap:28px;grid-template-columns:1fr}@media(min-width:760px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr}}.site-footer h2{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--yellow);margin-bottom:12px;font-weight:700}.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.site-footer a{color:#d6dbe9;text-decoration:none;font-weight:500}.site-footer a:hover{color:#fff;text-decoration:underline}.footer-brand{display:flex;gap:14px;align-items:flex-start}.footer-brand img{width:72px;height:72px;flex:none}.footer-brand p{margin:0;color:#aab2c8;max-width:34ch}.footer-bottom{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:.88rem;color:#9ba5bf}.mascot{display:block;width:100%;height:auto;overflow:visible}.mascot .m-eyes{transform-origin:100px 98px;animation:blink 5.5s infinite}.mascot .m-wave{transform-origin:165px 120px;animation:wave 1.5s ease-in-out infinite}.mascot.float{animation:float 4s ease-in-out infinite}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes wave{0%,to{transform:rotate(0)}50%{transform:rotate(-16deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bob{0%,to{transform:translateY(0) rotate(var(--r, 0deg))}50%{transform:translateY(-9px) rotate(var(--r, 0deg))}}@keyframes pop{0%{transform:scale(.85) translateY(6px)}60%{transform:scale(1.08) translateY(-4px)}to{transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.mascot .m-eyes,.mascot .m-wave,.mascot.float,.float-tile,.mascot-state.pop{animation:none}.btn,.tool-card,.cat-block{transition:none}}.toast{position:fixed;left:50%;bottom:24px;z-index:90;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--ink);color:#fff;padding:10px 18px;border-radius:12px;font-weight:600;box-shadow:var(--shadow-lg);transition:.2s}.toast.show{opacity:1;transform:translate(-50%)}.tool-panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-xl);padding:16px}@media(min-width:640px){.tool-panel{padding:22px}}.tool-panel+.tool-panel{margin-top:18px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:300px;padding:32px 16px;text-align:center;cursor:pointer;background:var(--accent-tint);border:2px dashed color-mix(in srgb,var(--accent) 45%,white);border-radius:18px;transition:background .15s,border-color .15s,transform .15s}.dropzone:hover{background:var(--accent-soft);border-color:var(--accent)}.dropzone.drag{background:var(--accent-soft);border-color:var(--accent);border-style:solid;transform:scale(1.01)}.dropzone .dz-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#fff;color:var(--accent);box-shadow:var(--shadow-md)}.dropzone .dz-icon .icon{width:30px;height:30px}.dropzone .dz-hint{color:var(--ink-2);font-weight:600;font-size:.98rem}.dropzone .dz-types{color:var(--muted);font-weight:500;font-size:.86rem;max-width:34em}.dropzone.compact{min-height:0;flex-direction:row;justify-content:flex-start;gap:14px;padding:12px 14px;border-radius:14px}.dropzone.compact .dz-icon{width:40px;height:40px;border-radius:12px;box-shadow:none}.dropzone.compact .dz-icon .icon{width:20px;height:20px}.dropzone.compact .btn-xl{min-height:42px;padding:.3em 1.1em;font-size:.95rem;border-radius:11px}.dropzone.compact .dz-types{display:none}.dropzone.compact .dz-hint{font-size:.9rem}@media(max-width:520px){.dropzone{min-height:240px}.dropzone.compact{flex-wrap:wrap}}.hidden{display:none!important}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.toolbar .spacer{flex:1}.field-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));margin-top:18px}.field-row.tight{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.field{display:grid;gap:6px;align-content:start}.field>label,.field>.label{font-weight:600;font-size:.9rem;color:var(--ink-2)}.field .hint{font-size:.82rem;color:var(--muted)}.input,.select,.textarea{width:100%;min-height:44px;padding:8px 12px;background:#fff;border:1px solid var(--line-2);border-radius:10px;font-weight:500;transition:border-color .15s,box-shadow .15s}.textarea{min-height:180px;resize:vertical;line-height:1.55}.input:hover,.select:hover,.textarea:hover{border-color:#b3bccf}.input:focus,.select:focus,.textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}input[type=range]{width:100%;accent-color:var(--accent);height:28px}input[type=color]{width:100%;height:44px;padding:3px;border:1px solid var(--line-2);border-radius:10px;background:#fff;cursor:pointer}.check{display:flex;gap:10px;align-items:center;font-weight:500;cursor:pointer;min-height:32px}.check input{width:18px;height:18px;accent-color:var(--accent)}.unit-input{position:relative}.unit-input .input{padding-right:52px}.unit-input span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-weight:600;font-size:.88rem;color:var(--muted);pointer-events:none}.seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}.seg label{cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}.seg span{display:block;padding:7px 15px;border-radius:9px;font-weight:600;font-size:.92rem;color:var(--muted);transition:background .15s,color .15s}.seg label:hover span{color:var(--ink)}.seg input:checked+span{background:var(--accent);color:#fff;box-shadow:0 4px 10px -4px var(--accent)}.seg input:focus-visible+span{outline:3px solid var(--accent)}.file-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}.file-item{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:14px}.file-item.dragging{opacity:.5}.file-item.drop-target{border-color:var(--accent);background:var(--accent-tint)}.file-thumb{width:52px;height:52px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.file-thumb img{width:100%;height:100%;object-fit:cover}.file-thumb .icon{width:24px;height:24px;color:var(--accent)}.file-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:.86rem;font-weight:500;color:var(--muted)}.file-meta b{color:var(--ink);font-weight:700}.file-meta .good{color:var(--ok);font-weight:700}.file-meta .bad{color:var(--danger);font-weight:600}.file-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.icon-btn{display:grid;place-items:center;width:36px;height:36px;cursor:pointer;background:#fff;border:1px solid var(--line-2);border-radius:10px;color:var(--ink-2);transition:background .15s,border-color .15s}.icon-btn:hover{background:var(--surface-2);border-color:#b3bccf}.icon-btn[disabled]{opacity:.35;pointer-events:none}.icon-btn .icon{width:17px;height:17px}.grip{cursor:grab;color:#98a1b6;display:grid;place-items:center}@media(max-width:520px){.file-item{grid-template-columns:44px minmax(0,1fr)}.file-thumb{width:44px;height:44px}.file-actions{grid-column:1 / -1;justify-content:flex-start}}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:16px}.progress>i{display:block;height:100%;width:0;background:var(--accent);border-radius:99px;transition:width .2s}.stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.stat{padding:14px 16px;background:#f6f8fc;border:1px solid var(--line);border-radius:14px}.stat b{display:block;font-size:1.55rem;font-weight:800;letter-spacing:-.02em;line-height:1.2;word-break:break-word}.stat span{font-size:.82rem;font-weight:600;color:var(--muted)}.stat.hl{background:var(--accent-tint);border-color:var(--accent-soft)}.stat.hl b{color:var(--accent-hover)}.notice{margin-top:14px;padding:12px 14px;border-radius:10px;font-weight:500;font-size:.92rem;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}.notice.err{background:#fef2f2;border-color:#fecaca;color:#991b1b}.notice.ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.output-box{display:flex;gap:10px;align-items:stretch}.output-box .input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.15rem;font-weight:600;letter-spacing:.02em;word-break:break-all}.meter{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.meter>i{display:block;height:100%;width:0;border-radius:99px;transition:width .2s,background .2s}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table.data{border-collapse:collapse;width:100%;font-weight:500;font-size:.93rem}table.data th,table.data td{padding:10px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}table.data th:first-child,table.data td:first-child{text-align:left}table.data thead th{background:#f6f8fc;font-weight:700;font-size:.84rem;color:var(--ink-2);position:sticky;top:0}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:#fafbfe}.qr-stage{display:grid;place-items:center;padding:18px;background:#fafbfe;border:1px dashed #c3cadb;border-radius:16px;min-height:280px}.qr-stage canvas,.qr-stage svg{max-width:100%;height:auto;image-rendering:pixelated;border-radius:6px;box-shadow:var(--shadow-sm)}.two-col{display:grid;gap:22px;grid-template-columns:minmax(0,1fr)}@media(min-width:720px){.two-col{grid-template-columns:minmax(0,1fr) minmax(0,300px);align-items:start}}.compare{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:12px}.compare figure{margin:0;text-align:center;font-size:.85rem;font-weight:600;color:var(--muted)}.compare img{width:100%;max-height:220px;object-fit:contain;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0 / 16px 16px;border:1px solid var(--line);border-radius:12px}.pw-form{margin-top:16px;padding:16px;background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:14px}.pw-form p{margin:0 0 10px}.pw-row{display:flex;flex-wrap:wrap;gap:10px}.pw-row .input{flex:1 1 220px}.result{margin-top:20px;padding:18px;background:#f2fbf6;border:1px solid #bfe8cf;border-radius:16px}.result-msg{margin:0 0 12px;font-size:1.1rem;color:#065f46}.result .file-list{margin-top:12px}.file-thumb canvas{width:100%;height:100%;object-fit:cover}.opt-title{margin:22px 0 8px;font-size:.95rem;font-weight:700}.opt-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.opt-note{margin:6px 0 0;font-size:.86rem;color:var(--muted)}.sel-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 10px}.sel-bar .spacer{flex:1}.sel-count{font-weight:700;font-size:.9rem;color:var(--ink-2)}.pg-grid{list-style:none;margin:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));max-height:560px;overflow:auto;padding:4px}.pg{position:relative;display:grid;gap:6px;padding:8px;background:#fff;border:2px solid var(--line);border-radius:12px;align-content:start}.pg.sel{border-color:var(--accent);background:var(--accent-tint)}.pg.sel.del{border-color:#dc2626;background:#fef1f1}.pg.removed{opacity:.4}.pg.dragging{opacity:.45}.pg.drop-target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.pg-thumb{position:relative;display:block;width:100%;padding:0;margin:0;background:#f1f3f9;border:0;border-radius:6px;overflow:hidden;line-height:0}button.pg-thumb{cursor:pointer}.pg-thumb canvas{display:block;width:100%;height:auto}.pg-thumb.loading{animation:pulse 1.2s ease-in-out infinite}.pg-thumb.blank{display:grid;place-items:center;background:#fff;border:1px dashed var(--line-2);line-height:1.2;font-size:.8rem;font-weight:600;color:var(--muted)}@keyframes pulse{50%{opacity:.55}}.pg-badge{position:absolute;right:6px;top:6px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;line-height:1}.pg.del .pg-badge{background:#dc2626}.pg-badge .icon{width:14px;height:14px;stroke-width:3}.pg-num{font-size:.78rem;font-weight:700;color:var(--muted);text-align:center}.pg-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}.pg-btn{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line-2);background:#fff;border-radius:8px;color:var(--ink-2);cursor:pointer}.pg-btn:hover{background:var(--surface-2)}.pg-btn[disabled]{opacity:.3;pointer-events:none}.pg-btn .icon{width:15px;height:15px}.pv-box{position:relative;display:inline-block;max-width:100%;line-height:0;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;background:#fff}.pv-box canvas{max-width:100%;height:auto}
