*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#eef2fb;--bg-2:#f6f3fd;--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f5f9;--border:#e6eaf2;--border-2:#dfe4ee;--text:#16203a;--text-2:#5a6579;--text-3:#94a0b4;--accent:#6366f1;--accent-2:#3b82f6;--accent-soft:#eef1ff;--grad:linear-gradient(135deg,#6366f1,#3b82f6);--grad-hero:linear-gradient(120deg,#6366f1,#8b5cf6 40%,#3b82f6 75%,#06b6d4);--ok:#10b981;--warn:#f59e0b;--danger:#ef4444;--c-text:#3b82f6;--c-data:#8b5cf6;--c-image:#ec4899;--c-convert:#06b6d4;--c-calc:#f59e0b;--c-gen:#10b981;--shadow-xs:0 1px 2px rgba(20,30,60,.06);--shadow-sm:0 2px 8px rgba(20,30,60,.07);--shadow:0 10px 30px rgba(20,30,60,.1);--shadow-lg:0 24px 60px rgba(20,30,60,.16);--ring:0 0 0 4px rgba(99,102,241,.18);--radius-sm:12px;--radius-xs:9px;--font:"Plus Jakarta Sans","Inter",system-ui,-apple-system,sans-serif;--mono:"Cascadia Code","Fira Code","JetBrains Mono","Consolas",monospace;--nav-h:66px}:root[data-theme=dark]{--bg:#0c1020;--bg-2:#120c22;--surface:#161c2e;--surface-2:#1b2236;--surface-3:#212a42;--border:#263049;--border-2:#2c3855;--text:#eaf0fb;--text-2:#98a3bd;--text-3:#6b7793;--accent-soft:#1c2340;--shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 2px 10px rgba(0,0,0,.35);--shadow:0 12px 34px rgba(0,0,0,.45);--shadow-lg:0 28px 64px rgba(0,0,0,.55);--ring:0 0 0 4px rgba(99,102,241,.28)}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background .5s ease,color .3s ease;line-height:1.5}.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.aurora span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;animation:drift 22s ease-in-out infinite}.aurora span:first-child{width:480px;height:480px;background:#a5b4fc;top:-120px;left:-60px}.aurora span:nth-child(2){width:420px;height:420px;background:#f0abfc;top:20%;right:-100px;animation-delay:-6s}.aurora span:nth-child(3){width:400px;height:400px;background:#7dd3fc;bottom:-140px;left:25%;animation-delay:-12s}:root[data-theme=dark] .aurora span{opacity:.22}@keyframes drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,30px) scale(1.1)}66%{transform:translate(-30px,20px) scale(.95)}}::selection{background:rgba(99,102,241,.22)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:20px;border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.nav{height:var(--nav-h);display:flex;align-items:center;padding:0 clamp(14px,4vw,40px);background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);transition:background .4s,border-color .4s}.nav-inner{width:100%;max-width:1240px;display:flex;gap:10px}.brand{gap:11px;cursor:pointer;background:none;border:none;font-family:var(--font)}.brand-logo{width:38px;height:38px;border-radius:11px;box-shadow:var(--shadow-sm);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.brand:hover .brand-logo{transform:rotate(-8deg) scale(1.08)}.brand-logo svg{width:22px;height:22px}.brand-name{font-size:1.18rem;letter-spacing:-.02em}.nav-links{gap:2px;margin-left:14px}.nav-home-btn,.nav-links{display:flex;align-items:center}.nav-home-btn{gap:7px;padding:9px 14px;border:none;background:none;color:var(--text-2);font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;border-radius:10px;transition:color .2s,background .2s}.nav-home-btn svg{width:16px;height:16px}.nav-home-btn.active,.nav-home-btn:hover{color:var(--accent);background:var(--accent-soft)}.nav-group{position:relative}.nav-group-btn{display:flex;align-items:center;gap:7px;padding:9px 13px;border:none;background:none;color:var(--text-2);font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;border-radius:10px;transition:color .2s,background .2s;white-space:nowrap}.nav-group-btn .cat-ico{font-size:1rem}.nav-group-btn .caret{width:14px;height:14px;opacity:.55;transition:transform .3s}.nav-group.open .nav-group-btn,.nav-group:hover .nav-group-btn{color:var(--text);background:var(--surface-3)}.nav-group.open .nav-group-btn .caret,.nav-group:hover .nav-group-btn .caret{transform:rotate(180deg)}.nav-group.has-active .nav-group-btn{color:var(--accent)}.dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-10px) scale(.97);transform-origin:top center;min-width:260px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;z-index:210}.nav-group.open .dropdown,.nav-group:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0) scale(1)}.dropdown:before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:var(--surface);border-left:1px solid var(--border);border-top:1px solid var(--border)}.dd-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;background:none;text-align:left;cursor:pointer;border-radius:11px;transition:background .16s,transform .16s;color:var(--text)}.dd-item:hover{background:var(--surface-3);transform:translateX(3px)}.dd-emoji{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:1.05rem;flex-shrink:0;background:var(--accent-soft)}.dd-text{display:flex;flex-direction:column;gap:1px;min-width:0}.dd-name{font-size:.86rem;font-weight:700;color:var(--text)}.dd-desc{font-size:.72rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-spacer{flex:1 1}.icon-btn{width:40px;height:40px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;display:grid;place-items:center;transition:all .25s;flex-shrink:0}.icon-btn:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.icon-btn svg{width:19px;height:19px}#themeToggle svg{transition:transform .5s cubic-bezier(.34,1.56,.64,1)}#themeToggle:hover svg{transform:rotate(40deg)}:root[data-theme=dark] #themeToggle:hover svg{transform:rotate(-40deg)}.nav-home-btn .caret{width:13px;height:13px;opacity:.55;transition:transform .3s}#megaBtn.open .caret{transform:rotate(180deg)}.nav-hamburger{display:none}.mega-backdrop{position:fixed;inset:var(--nav-h) 0 0;background:rgba(10,15,30,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;z-index:190}.mega-backdrop.open{opacity:1;visibility:visible}.mega-panel{position:fixed;top:calc(var(--nav-h) + 8px);left:50%;transform:translateX(-50%) translateY(-12px);width:min(1120px,95vw);max-height:calc(100vh - var(--nav-h) - 24px);overflow-y:auto;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:8px 20px;gap:8px 20px;align-content:start;opacity:0;visibility:hidden;transition:opacity .28s cubic-bezier(.22,.7,.3,1),transform .28s cubic-bezier(.22,.7,.3,1),visibility .28s;z-index:195}.mega-panel.open{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.mega-col{page-break-inside:avoid;break-inside:avoid;margin-bottom:10px}.mega-head{display:flex;align-items:center;gap:9px;font-size:.82rem;font-weight:800;color:var(--text);padding:8px 8px 6px;position:-webkit-sticky;position:sticky;top:0}.mega-emoji{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:.9rem;color:#fff}.mega-n{margin-left:auto;font-size:.68rem;font-weight:700;color:var(--text-3);background:var(--surface-3);padding:2px 7px;border-radius:999px}.mega-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border:none;background:none;text-align:left;cursor:pointer;border-radius:8px;color:var(--text-2);font-family:var(--font);font-size:.82rem;font-weight:500;transition:background .14s,color .14s,transform .14s}.mega-item:hover{background:var(--surface-3);color:var(--text);transform:translateX(3px)}.mega-item.active{color:var(--accent);background:var(--accent-soft)}.mega-item span{font-size:.95rem;width:20px;text-align:center;flex-shrink:0}.stage{position:relative;z-index:1}.page{display:none}.page.active{display:block;animation:pageIn .5s cubic-bezier(.22,.7,.3,1) both}@keyframes pageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.container{max-width:1180px;padding:0 clamp(14px,4vw,40px)}.hero{padding:clamp(48px,9vw,96px) 0 40px;position:relative}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:.8rem;font-weight:600;color:var(--text-2);margin-bottom:24px;animation:fadeUp .6s both}.hero-badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(16,185,129,.5);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.5)}70%{box-shadow:0 0 0 10px rgba(16,185,129,0)}to{box-shadow:0 0 0 0 rgba(16,185,129,0)}}.hero h1{font-size:clamp(2.3rem,6vw,4rem);letter-spacing:-.035em;line-height:1.05;animation:fadeUp .6s .05s both}.hero h1 .grad{background:var(--grad-hero);background-size:220% 220%;animation:sheen 6s ease infinite}@keyframes sheen{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.hero p{max-width:620px;margin:20px auto 0;font-size:clamp(1rem,2.5vw,1.18rem);animation:fadeUp .6s .12s both}.hero-stats{display:flex;justify-content:center;gap:clamp(24px,6vw,60px);margin-top:40px;animation:fadeUp .6s .2s both}.hero-stat .num{font-size:clamp(1.6rem,4vw,2.3rem);font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-stat .lbl{font-size:.8rem;color:var(--text-2);font-weight:600;margin-top:2px}.search-wrap{margin:36px auto 0;animation:fadeUp .6s .28s both}#toolSearch{width:100%;padding:17px 20px 17px 52px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font);font-size:1rem;outline:none;box-shadow:var(--shadow-sm);transition:box-shadow .25s,border-color .25s}#toolSearch:focus{border-color:var(--accent);box-shadow:var(--ring)}#toolSearch::placeholder{color:var(--text-3)}.float-chips{position:absolute;inset:0;pointer-events:none;z-index:-1}.float-chips b{position:absolute;font-size:1.8rem;opacity:.8;animation:floaty 7s ease-in-out infinite;filter:drop-shadow(0 8px 16px rgba(20,30,60,.14))}@keyframes floaty{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-18px) rotate(6deg)}}.cat-section{padding:34px 0 8px}.cat-head{gap:12px;margin-bottom:18px}.cat-head .cat-badge{width:42px;height:42px;border-radius:12px;font-size:1.3rem;box-shadow:var(--shadow-sm)}.cat-head h2{font-size:1.35rem;letter-spacing:-.02em}.cat-head .cat-count{font-size:.82rem;font-weight:600;margin-left:2px}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:16px;gap:16px}.tool-card{border-radius:var(--radius);padding:20px;cursor:pointer;text-align:left;font-family:var(--font);transition:transform .3s cubic-bezier(.22,.7,.3,1),box-shadow .3s,border-color .3s}.tool-card:after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .3s;background:radial-gradient(120% 120% at 100% 0,color-mix(in srgb,var(--cc) 14%,transparent),transparent 60%)}.tool-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}.tool-card:hover:after{opacity:1}.tool-card:active{transform:translateY(-2px) scale(.99)}.tc-emoji{width:48px;height:48px;border-radius:13px;font-size:1.5rem;background:color-mix(in srgb,var(--cc) 14%,var(--surface-2));margin-bottom:14px;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.tool-card:hover .tc-emoji{transform:scale(1.12) rotate(-6deg)}.tc-name{font-size:1rem;margin-bottom:5px}.tc-desc{font-size:.83rem;line-height:1.45}.tc-arrow{position:absolute;top:20px;right:18px;color:var(--text-3);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s}.tool-card:hover .tc-arrow{opacity:1;transform:none;color:var(--cc)}.reveal{opacity:0;transform:translateY(22px)}.reveal.in{animation:fadeUp .6s cubic-bezier(.22,.7,.3,1) forwards}@keyframes fadeUp{to{opacity:1;transform:none}}.no-results{padding:60px 0;font-size:1rem;display:none}.no-results.show{display:block;animation:fadeUp .4s both}#toolPage{padding:28px 0 80px}.tool-topbar{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}.back-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--font);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-xs)}.back-btn:hover{color:var(--accent);border-color:var(--accent);transform:translateX(-3px)}.back-btn svg{width:16px;height:16px}.tool-hero .th-emoji{border-radius:15px;font-size:1.8rem;animation:popIn .5s cubic-bezier(.34,1.56,.64,1) both}@keyframes popIn{0%{opacity:0;transform:scale(.5) rotate(-12deg)}to{opacity:1;transform:none}}.tool-hero h1{letter-spacing:-.02em}.tool-hero p{margin-top:2px}.tool-body{animation:fadeUp .5s .08s both}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(18px,3vw,28px);box-shadow:var(--shadow-sm)}.card+.card{margin-top:16px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field:last-child{margin-bottom:0}.field>label,.lbl{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.input,.select,.textarea{width:100%;padding:13px 15px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font);font-size:.93rem;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.textarea{min-height:150px;resize:vertical;font-family:var(--mono);font-size:.86rem;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--surface)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.select{cursor:pointer}.grid-2,.io-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.section-title{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-2);margin-bottom:12px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1 1;height:1px;background:var(--border)}.actions{display:flex;flex-wrap:wrap;gap:9px}.btn{display:inline-flex;align-items:center;gap:7px;padding:11px 17px;border:1px solid var(--border-2);border-radius:var(--radius-xs);font-family:var(--font);font-size:.85rem;font-weight:700;cursor:pointer;background:var(--surface);color:var(--text);transition:transform .12s,box-shadow .25s,background .2s,border-color .2s,color .2s;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn svg{width:15px;height:15px;flex-shrink:0}.btn:hover{background:var(--surface-3);border-color:var(--border-2);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.97)}.btn-primary{background:var(--grad);color:#fff;border:none;box-shadow:0 6px 18px rgba(99,102,241,.34)}.btn-primary:hover{box-shadow:0 10px 26px rgba(99,102,241,.45);background:var(--grad)}.btn-primary.success{background:linear-gradient(135deg,#10b981,#059669)}.btn-ghost{background:none;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-danger{background:none;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.btn .lbl-swap{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}.btn.success .lbl-main{opacity:0;transform:translateY(-8px)}.btn.success .lbl-swap{opacity:1;transform:none}.btn .lbl-main{transition:opacity .25s,transform .25s;display:inline-flex;align-items:center;gap:7px}.ripple{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.4);transform:scale(0);animation:rip .55s ease-out;pointer-events:none}:root[data-theme=dark] .ripple{background:hsla(0,0%,100%,.18)}.btn:not(.btn-primary) .ripple{background:rgba(99,102,241,.22)}@keyframes rip{to{transform:scale(4);opacity:0}}.bottom-bar{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:18px}.bottom-bar .spacer{flex:1 1}.result-box{padding:16px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);font-family:var(--mono);font-size:.87rem;line-height:1.6;color:var(--text);word-break:break-word;white-space:pre-wrap;min-height:52px}.result-box.empty{color:var(--text-3);font-style:italic;font-family:var(--font)}.big-output{font-size:1.9rem;font-weight:700;font-family:var(--mono);text-align:center;padding:22px 16px;word-break:break-all}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:7px;border-radius:4px;background:var(--surface-3);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--surface);box-shadow:var(--shadow-sm);-webkit-transition:transform .15s;transition:transform .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--surface)}.check-row{display:flex;flex-wrap:wrap;gap:12px 20px}.check-row label{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--text);cursor:pointer;font-weight:500}.check-row input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;cursor:pointer}.seg{display:inline-flex;padding:4px;background:var(--surface-3);border-radius:11px;gap:3px;flex-wrap:wrap}.seg button{padding:8px 15px;background:none;border:none;color:var(--text-2);font-family:var(--font);font-size:.8rem;font-weight:700;cursor:pointer;border-radius:8px;transition:all .2s}.seg button.active{color:var(--accent);background:var(--surface);box-shadow:var(--shadow-xs)}.seg button:hover:not(.active){color:var(--text)}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:12px;gap:12px}.tile{padding:18px 14px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);text-align:center;transition:transform .25s,box-shadow .25s}.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}.tile .tile-val{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tile .tile-label{margin-top:4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);font-weight:600}.hint{font-size:.8rem;color:var(--text-2);line-height:1.5}.copy-line{display:flex;align-items:center;gap:12px;padding:13px 15px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);cursor:pointer;transition:all .18s}.copy-line:hover{background:var(--surface);border-color:var(--accent);transform:translateX(3px);box-shadow:var(--shadow-sm)}.copy-line .cl-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);font-weight:700;flex-shrink:0;width:92px}.copy-line .cl-val{font-family:var(--mono);font-size:.85rem;color:var(--text);word-break:break-all;flex:1 1}.copy-line .cl-ico{opacity:.35;flex-shrink:0;width:15px;height:15px}.copy-line:hover .cl-ico{opacity:1;color:var(--accent)}.color-picker-wrap{display:flex;align-items:center;gap:10px}.color-picker-wrap label{font-size:.82rem;font-weight:600;color:var(--text-2)}input[type=color]{width:44px;height:40px;padding:3px;border:1px solid var(--border-2);border-radius:10px;cursor:pointer;background:var(--surface-2)}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:7px}.drop-zone{border:2.5px dashed var(--border-2);border-radius:var(--radius);padding:54px 30px;text-align:center;cursor:pointer;transition:all .3s}.drop-zone.drag-over,.drop-zone:hover{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.008)}.drop-zone .drop-emoji{font-size:2.6rem;display:block;margin-bottom:12px;transition:transform .3s}.drop-zone:hover .drop-emoji{transform:translateY(-4px) scale(1.08)}.drop-zone .drop-text{color:var(--text);font-size:.96rem;font-weight:600}.drop-zone .drop-text strong{color:var(--accent)}.drop-zone .drop-hint{margin-top:6px;font-size:.8rem;color:var(--text-2)}.img-thumb{max-width:100%;max-height:340px;border-radius:var(--radius-sm);border:1px solid var(--border-2);display:block;margin:0 auto}.swatch-row{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:14px}.swatch-item{display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer;transition:transform .2s}.swatch-item:hover{transform:translateY(-5px)}.swatch-circle{width:66px;height:66px;border-radius:50%;border:3px solid var(--surface);box-shadow:var(--shadow);transition:transform .2s}.swatch-item:hover .swatch-circle{transform:scale(1.1)}.swatch-label{font-size:.74rem;font-weight:700;color:var(--text-2);font-family:var(--mono);padding:4px 10px;background:var(--surface-2);border-radius:7px;border:1px solid var(--border-2)}.diff-out{font-family:var(--mono);font-size:.84rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}.diff-add{background:color-mix(in srgb,var(--ok) 22%,transparent);color:color-mix(in srgb,var(--ok) 70%,var(--text));border-radius:3px}.diff-del{background:color-mix(in srgb,var(--danger) 20%,transparent);color:color-mix(in srgb,var(--danger) 65%,var(--text));text-decoration:line-through;border-radius:3px}.md-preview{line-height:1.7;font-size:.93rem}.md-preview h1,.md-preview h2,.md-preview h3{margin:.7em 0 .4em;line-height:1.25}.md-preview h1{font-size:1.6rem}.md-preview h2{font-size:1.3rem}.md-preview h3{font-size:1.1rem}.md-preview p{margin:.55em 0}.md-preview ol,.md-preview ul{margin:.55em 0 .55em 1.4em}.md-preview code{background:var(--surface-3);padding:2px 6px;border-radius:5px;font-family:var(--mono);font-size:.85em}.md-preview pre{background:var(--surface-3);padding:14px;border-radius:10px;overflow-x:auto;margin:.55em 0;border:1px solid var(--border-2)}.md-preview pre code{background:none;padding:0}.md-preview blockquote{border-left:3px solid var(--accent);padding-left:14px;margin:.55em 0;color:var(--text-2)}.md-preview a{color:var(--accent)}.md-preview hr{border:none;border-top:1px solid var(--border);margin:1em 0}.md-preview table{border-collapse:collapse;margin:.55em 0}.md-preview td,.md-preview th{border:1px solid var(--border-2);padding:6px 12px}.strength-bar{height:9px;border-radius:5px;background:var(--surface-3);overflow:hidden;margin-top:12px}.strength-fill{height:100%;width:0;border-radius:5px;transition:width .4s cubic-bezier(.22,.7,.3,1),background .4s}.wcag-badge{padding:5px 11px;border-radius:7px;font-size:.74rem;font-weight:800}.wcag-pass{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.wcag-fail{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.preview-pane{height:180px}.preview-pane,.shadow-stage{width:100%;border-radius:var(--radius);border:1px solid var(--border-2)}.shadow-stage{height:220px;background:var(--surface-2);display:grid;place-items:center}.shadow-box{width:120px;height:120px;border-radius:20px;background:var(--accent)}.color-preview-lg{width:100%;height:120px;border-radius:var(--radius);border:1px solid var(--border-2);box-shadow:inset 0 2px 14px rgba(0,0,0,.06)}.qr-preview-area{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:22px;padding:30px 20px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius)}.qr-output-wrap{width:220px;height:220px;display:grid;place-items:center;background:#fff;border-radius:14px;padding:16px;box-shadow:var(--shadow-sm)}.qr-output-wrap canvas,.qr-output-wrap img{max-width:100%;max-height:100%}.qr-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.4}.qr-placeholder .qp-emoji{font-size:2.6rem}.qr-placeholder span{font-size:.82rem;color:#64748b;font-weight:600}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(24px);background:var(--text);color:var(--bg);padding:13px 24px;border-radius:12px;font-size:.88rem;font-weight:700;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:1000;max-width:90vw}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}footer{margin-top:40px;padding:30px 0;font-size:.84rem;position:relative;z-index:1;background:color-mix(in srgb,var(--surface) 50%,transparent)}footer b{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}.kbd{display:inline-block;padding:1px 6px;font-size:.68rem;color:var(--text-2);background:var(--surface-3);border:1px solid var(--border-2);border-radius:5px;margin-left:6px;font-family:var(--font)}@media (max-width:940px){.nav-hamburger{display:grid;margin-left:auto}.nav-links{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:14px clamp(14px,4vw,40px) 24px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg);max-height:calc(100vh - var(--nav-h));overflow-y:auto;display:none}.nav-links.open{display:flex;animation:slideDown .3s ease both}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}.nav-group-btn,.nav-home-btn{width:100%;justify-content:flex-start}.nav-group-btn .caret{margin-left:auto}.dropdown{position:static;transform:none;opacity:1;visibility:visible;min-width:0;box-shadow:none;border:none;background:transparent;padding:2px 0 6px 14px}.dropdown,.dropdown:before{display:none}.nav-group.open .dropdown{display:block}.nav-group:hover .dropdown{transform:none}.nav-spacer{display:none}}@media (max-width:600px){.grid-2,.io-grid{grid-template-columns:1fr}.hero-stats{gap:20px}.big-output{font-size:1.4rem}.tool-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--shadow-xs:0 1px 2px rgba(20,30,60,.05);--shadow-sm:0 2px 10px rgba(20,30,60,.06);--shadow:0 12px 34px rgba(20,30,60,.1);--shadow-lg:0 28px 64px rgba(20,30,60,.16);--radius:18px;--nav-h:108px}:root[data-theme=dark]{--bg:#0a0e1a;--bg-2:#0f0a1e}body{display:block;background:radial-gradient(1200px 600px at 15% -8%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),radial-gradient(1000px 520px at 100% 0,color-mix(in srgb,#ec4899 7%,transparent),transparent 55%),var(--bg);background-attachment:fixed}.stage{width:100%}a{color:inherit;text-decoration:none}.container{width:100%;max-width:1500px;margin:0 auto;padding:0 clamp(16px,3vw,36px)}.nav{display:block;height:auto;position:-webkit-sticky;position:sticky;top:0;z-index:200;width:100%;padding:0;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:saturate(1.7) blur(18px);backdrop-filter:saturate(1.7) blur(18px);border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent)}.nav-inner{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:16px;gap:16px;padding:11px clamp(16px,3vw,36px)}.brand,.nav-inner{align-items:center}.brand{display:flex;gap:10px;flex-shrink:0}.brand-logo{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--grad);color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 42%,transparent);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.brand:hover .brand-logo{transform:rotate(-8deg) scale(1.06)}.brand-logo svg{width:21px;height:21px}.brand-name{font-size:1.14rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}.brand-name b{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.nav-search{position:relative;width:100%;max-width:720px;justify-self:center;display:flex;align-items:center}.nav-search svg{position:absolute;left:19px;width:20px;height:20px;color:var(--text-3);pointer-events:none}.nav-search input{width:100%;padding:13px 20px 13px 50px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.nav-search input:focus{border-color:var(--accent);box-shadow:var(--ring);background:var(--surface)}.catbar{border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);max-width:1500px;margin:0 auto;padding:0 clamp(8px,2vw,22px)}.catbar,.catbar-scroll{display:flex;align-items:center}.catbar-scroll{flex:1 1;gap:2px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;padding:6px 2px;min-width:0}.catbar-scroll::-webkit-scrollbar{display:none}.catbar-item{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:8px 12px;border:none;background:none;color:var(--text-2);font-family:var(--font);font-size:.85rem;font-weight:600;cursor:pointer;border-radius:9px;white-space:nowrap;transition:color .15s,background .15s}.catbar-item:hover{color:var(--text);background:var(--surface-3)}.catbar-item.open{color:var(--pc);background:color-mix(in srgb,var(--pc) 13%,transparent)}.ci-emoji{font-size:.95rem}.ci-caret{width:13px;height:13px;opacity:.45;transition:transform .2s,opacity .2s}.catbar-item.open .ci-caret{transform:rotate(180deg);opacity:.9}.catbar-arrow{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-2);display:none;place-items:center;cursor:pointer;box-shadow:var(--shadow-xs);transition:color .18s,border-color .18s,transform .18s;margin:0 2px}.catbar-arrow.show{display:grid}.catbar-arrow:hover{color:var(--accent);border-color:var(--accent);transform:scale(1.08)}.catbar-arrow svg{width:18px;height:18px}.catbar-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:240;cursor:default}.catbar-dd{position:fixed;z-index:250;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:ddIn .16s cubic-bezier(.22,.7,.3,1)}@keyframes ddIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.catbar-dd-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--border)}.cdd-emoji{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:1rem;color:#fff;flex-shrink:0}.cdd-title{font-weight:800;font-size:.98rem;letter-spacing:-.01em}.cdd-count{margin-left:auto;font-size:.72rem;font-weight:700;color:#fff;background:var(--pc);padding:2px 9px;border-radius:999px}.catbar-dd-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;padding:8px;max-height:min(64vh,460px);overflow-y:auto}.catbar-dd-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;transition:background .14s,transform .14s;min-width:0}.catbar-dd-item:hover{background:color-mix(in srgb,var(--pc) 11%,var(--surface-3));transform:translateX(2px)}.cdi-emoji{font-size:1.05rem;width:22px;text-align:center;flex-shrink:0}.cdi-name{font-size:.84rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:560px){.catbar-dd-grid{grid-template-columns:1fr}}.hero{text-align:center;padding:clamp(26px,4.5vw,50px) 0 18px}.hero h1{font-size:clamp(1.65rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.12}.hero h1 .grad{background:linear-gradient(110deg,#6366f1,#8b5cf6 40%,#3b82f6 72%,#06b6d4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero p{max-width:660px;margin:13px auto 0;color:var(--text-2);font-size:clamp(.92rem,1.8vw,1.04rem);line-height:1.6}.hero p b{color:var(--text);font-weight:700}.search-wrap{max-width:560px;margin:22px auto 0;position:relative}.search-wrap svg{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--text-3);pointer-events:none}.search-wrap input{width:100%;padding:15px 20px 15px 52px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font);font-size:.98rem;outline:none;box-shadow:var(--shadow);transition:box-shadow .25s,border-color .25s}.search-wrap input:focus{border-color:var(--accent);box-shadow:var(--ring),var(--shadow)}.hero-meta{margin-top:14px;font-size:.82rem;color:var(--text-3)}.hero-meta b{color:var(--text-2);font-weight:700}.cat-section{padding:18px 0 4px;scroll-margin-top:calc(var(--nav-h) + 14px)}.cat-head{display:flex;align-items:center;gap:11px;margin-bottom:13px}.cat-head .cat-badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:1.15rem;color:#fff;box-shadow:var(--shadow-xs)}.cat-head h2{font-size:1.24rem;font-weight:800;letter-spacing:-.025em}.cat-head .cat-count{font-size:.72rem;color:var(--text-2);font-weight:700;background:var(--surface-3);padding:3px 9px;border-radius:999px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(244px,1fr));grid-gap:11px;gap:11px}.tool-card{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-xs);overflow:hidden;position:relative;transition:transform .22s cubic-bezier(.22,.7,.3,1),box-shadow .22s,border-color .22s}.tool-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--cc) 45%,var(--border))}.tc-emoji{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.28rem;flex-shrink:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cc) 20%,transparent);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.tool-card:hover .tc-emoji{transform:scale(1.1) rotate(-6deg)}.tc-body{display:flex;flex-direction:column;min-width:0}.tc-name{font-size:.92rem;font-weight:700;letter-spacing:-.01em;line-height:1.25}.tc-desc{font-size:.78rem;color:var(--text-2);line-height:1.4;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.no-results{text-align:center;padding:70px 0;color:var(--text-2);font-size:1.05rem}.no-results b{color:var(--text)}.tool-page{padding-top:20px;padding-bottom:70px;max-width:920px}.crumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.82rem;margin-bottom:18px}.crumbs,.crumbs a{color:var(--text-2)}.crumbs a{transition:color .15s}.crumbs a:hover{color:var(--accent)}.crumbs span[aria-current]{color:var(--text);font-weight:600}.crumbs span{color:var(--text-3)}.tool-hero{display:flex;align-items:center;gap:16px;margin-bottom:24px}.tool-hero .th-emoji{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:1.85rem;color:#fff;box-shadow:var(--shadow);flex-shrink:0}.tool-hero h1{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800;letter-spacing:-.025em}.tool-hero p{color:var(--text-2);font-size:.95rem;margin-top:3px}.tool-about{margin-top:34px;padding:24px 26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.tool-about h2{font-size:1.1rem;font-weight:800;margin-bottom:8px;letter-spacing:-.01em}.tool-about p{color:var(--text-2);line-height:1.75;font-size:.92rem}.tool-content{margin-top:34px;display:grid;grid-gap:16px;gap:16px}.tc-block{padding:22px 26px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.tc-block h2{font-size:1.12rem;font-weight:800;margin-bottom:14px;letter-spacing:-.015em}.tc-block p{color:var(--text-2);line-height:1.75;font-size:.93rem}.tc-block a{color:var(--accent);font-weight:600}.how-steps{list-style:none;display:grid;grid-gap:12px;gap:12px}.how-steps li{display:flex;align-items:flex-start;gap:13px;color:var(--text-2);line-height:1.6;font-size:.93rem}.step-n{flex-shrink:0;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:#fff;font-weight:800;font-size:.82rem}.feature-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:9px 18px;gap:9px 18px}.feature-list li{display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:.92rem}.feat-check{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok);font-weight:800;font-size:.74rem}.faq-item{border-top:1px solid var(--border)}.faq-item:first-of-type{border-top:none}.faq-item summary{cursor:pointer;padding:14px 0;font-weight:700;font-size:.96rem;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:1.3rem;color:var(--text-3);font-weight:400;line-height:1}.faq-item[open] summary:after{content:"−"}.faq-item p{padding:0 0 16px;color:var(--text-2);line-height:1.7;font-size:.9rem}.related{margin-top:36px}.related h2{font-size:1.22rem;font-weight:800;margin-bottom:15px;letter-spacing:-.02em}.related .tool-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}footer{margin-top:46px;padding:28px 0;text-align:center;color:var(--text-2);font-size:.85rem;border-top:1px solid var(--border)}footer b{color:var(--danger)}footer a{color:var(--accent);font-weight:600}@media (max-width:680px){:root{--nav-h:128px}.nav-inner{grid-template-columns:1fr auto;grid-template-areas:"brand theme" "search search";gap:10px}.brand{grid-area:brand}.nav-actions{grid-area:theme}.nav-search{grid-area:search;max-width:none}.tool-grid{grid-template-columns:1fr}.cmdk-trigger kbd{display:none}}.intro-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:var(--bg);animation:introBgIn .45s ease}.intro-overlay.leaving{animation:introOut .7s cubic-bezier(.76,0,.24,1) forwards}.intro-mesh{position:absolute;inset:-20%;z-index:0;pointer-events:none;background:radial-gradient(38% 44% at 28% 30%,color-mix(in srgb,var(--accent) 55%,transparent),transparent 70%),radial-gradient(34% 40% at 74% 34%,color-mix(in srgb,#8b5cf6 50%,transparent),transparent 70%),radial-gradient(40% 46% at 52% 78%,color-mix(in srgb,#06b6d4 42%,transparent),transparent 72%);filter:blur(28px) saturate(1.2);opacity:.55;animation:introMesh 6s ease-in-out infinite alternate}.intro-inner{position:relative;z-index:1;text-align:center}.intro-logo{position:relative;width:92px;height:92px;margin:0 auto 26px;border-radius:24px;display:grid;place-items:center;background:var(--grad);color:#fff;box-shadow:0 24px 64px color-mix(in srgb,var(--accent) 55%,transparent);animation:introLogo 1s cubic-bezier(.34,1.56,.64,1) both}.intro-ring{position:absolute;inset:-9px;border-radius:30px;z-index:-1;background:conic-gradient(from 0deg,transparent 0deg,var(--accent) 90deg,#8b5cf6 180deg,#06b6d4 270deg,transparent 1turn);filter:blur(6px);opacity:.9;animation:introSpin 2.6s linear infinite}.intro-logo svg{width:50px;height:50px;animation:introDraw 1.1s ease .25s both}.intro-word{font-size:clamp(2.1rem,7.5vw,3.4rem);font-weight:800;letter-spacing:-.04em;color:var(--text);display:flex;justify-content:center}.intro-word span{display:inline-block;opacity:0;animation:introLetter .6s cubic-bezier(.34,1.56,.64,1) both}.intro-word span.iw-accent{background:linear-gradient(120deg,#6366f1,#8b5cf6 45%,#06b6d4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.intro-tag{margin-top:12px;color:var(--text-2);font-size:clamp(.92rem,2.4vw,1.06rem);font-weight:500;opacity:0;animation:introUp .6s cubic-bezier(.22,.7,.3,1) .82s forwards}.intro-pill{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:7px 16px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);color:var(--text);font-size:.82rem;font-weight:700;position:relative;overflow:hidden;opacity:0;animation:introUp .6s cubic-bezier(.22,.7,.3,1) .98s forwards}.intro-pill:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,#fff 45%,transparent) 50%,transparent 70%);transform:translateX(-120%);animation:introShimmer 1.4s ease 1.3s infinite}.intro-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.intro-progress{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2;background:color-mix(in srgb,var(--text) 8%,transparent)}.intro-progress span{display:block;height:100%;width:0;background:var(--grad-hero);animation:introFill 1.85s cubic-bezier(.4,.1,.2,1) .15s forwards}@keyframes introBgIn{0%{opacity:0}to{opacity:1}}@keyframes introOut{0%{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);opacity:1}to{-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);opacity:1}}@keyframes introMesh{0%{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.1)}}@keyframes introLogo{0%{opacity:0;transform:scale(.4) rotate(-30deg)}to{opacity:1;transform:none}}@keyframes introSpin{to{transform:rotate(1turn)}}@keyframes introDraw{0%{stroke-dasharray:90;stroke-dashoffset:90}to{stroke-dashoffset:0}}@keyframes introLetter{0%{opacity:0;transform:translateY(18px) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes introUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes introShimmer{to{transform:translateX(120%)}}@keyframes introFill{to{width:100%}}.page-transition{will-change:transform,opacity,filter;transform-origin:center top}.pt-fade{animation:ptFade .42s ease both}.pt-up{animation:ptUp .5s cubic-bezier(.16,1,.3,1) both}.pt-down{animation:ptDown .5s cubic-bezier(.16,1,.3,1) both}.pt-left{animation:ptLeft .5s cubic-bezier(.16,1,.3,1) both}.pt-right{animation:ptRight .5s cubic-bezier(.16,1,.3,1) both}.pt-scale{animation:ptScale .48s cubic-bezier(.34,1.3,.64,1) both}.pt-blur{animation:ptBlur .52s ease both}.pt-rotate{animation:ptRotate .55s cubic-bezier(.34,1.3,.64,1) both}.pt-clip{animation:ptClip .58s cubic-bezier(.76,0,.24,1) both}.pt-flip{animation:ptFlip .6s cubic-bezier(.34,1.2,.64,1) both}.pt-zoom{animation:ptZoom .5s cubic-bezier(.16,1,.3,1) both}@keyframes ptFade{0%{opacity:0}to{opacity:1}}@keyframes ptUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes ptDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:none}}@keyframes ptLeft{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}@keyframes ptRight{0%{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}@keyframes ptScale{0%{opacity:0;transform:scale(.955)}to{opacity:1;transform:none}}@keyframes ptBlur{0%{opacity:0;filter:blur(11px);transform:scale(1.01)}to{opacity:1;filter:blur(0);transform:none}}@keyframes ptRotate{0%{opacity:0;transform:rotate(-2.5deg) scale(.965)}to{opacity:1;transform:none}}@keyframes ptClip{0%{opacity:.4;-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0)}to{opacity:1;-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}@keyframes ptFlip{0%{opacity:0;transform:perspective(1200px) rotateX(12deg) translateY(22px)}to{opacity:1;transform:none}}@keyframes ptZoom{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}.route-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:300;pointer-events:none}.route-progress i{display:block;height:100%;width:0;background:var(--grad-hero);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 65%,transparent);animation:routeBar .62s cubic-bezier(.3,.7,.3,1) forwards}@keyframes routeBar{0%{width:0;opacity:1}72%{width:84%;opacity:1}to{width:100%;opacity:0}}.tc-fav{position:absolute;top:7px;right:7px;width:27px;height:27px;border-radius:8px;border:none;background:transparent;color:var(--text-3);cursor:pointer;display:grid;place-items:center;opacity:0;transform:scale(.8);transition:opacity .16s,transform .16s,color .16s,background .16s;z-index:2}.tool-card:hover .tc-fav{opacity:.85;transform:none}.tc-fav:hover{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.tc-fav.on{opacity:1;transform:none;color:var(--warn)}.tc-fav svg{width:16px;height:16px}.hero-actions{margin-top:16px;display:flex;justify-content:center;gap:10px}.btn-surprise{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font);font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:var(--shadow-xs);transition:transform .18s,box-shadow .18s,border-color .18s,color .18s}.btn-surprise:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent)}.btn-surprise:active{transform:translateY(0)}.back-to-top{position:fixed;bottom:22px;right:22px;z-index:210;width:46px;height:46px;border-radius:50%;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-2);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;transition:opacity .25s,transform .25s cubic-bezier(.22,.7,.3,1),color .18s,border-color .18s}.back-to-top.show{opacity:1;transform:none;pointer-events:auto}.back-to-top:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-3px)}.back-to-top svg{width:22px;height:22px}.cat-section.pre-reveal{opacity:0;transform:translateY(26px)}.cat-section.revealed{animation:revealSec .6s cubic-bezier(.22,.7,.3,1) both}@keyframes revealSec{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@media (max-width:680px){.back-to-top{bottom:16px;right:16px}}@media (prefers-reduced-motion:reduce){.cat-section.revealed,.intro-logo,.intro-logo svg,.intro-mesh,.intro-pill,.intro-pill:after,.intro-progress span,.intro-ring,.intro-tag,.intro-word span,.page-transition,.pt-blur,.pt-clip,.pt-down,.pt-fade,.pt-flip,.pt-left,.pt-right,.pt-rotate,.pt-scale,.pt-up,.pt-zoom,.route-progress i{animation:none!important}.cat-section.pre-reveal{opacity:1!important;transform:none!important}.intro-pill,.intro-tag,.intro-word span{opacity:1!important}.intro-progress span{width:100%!important}}.nav-actions{display:flex;align-items:center;gap:8px;justify-self:end}.cmdk-trigger{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text-3);cursor:pointer;transition:border-color .16s,color .16s,background .16s}.cmdk-trigger:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--surface)}.cmdk-trigger svg{width:17px;height:17px}.cmdk-trigger kbd{font-family:var(--font);font-size:.72rem;font-weight:700;color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:2px 6px;line-height:1}.catbar-all{color:var(--accent)!important;font-weight:700}.catbar-all:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)!important}.cmdk-backdrop{position:fixed;inset:0;z-index:500;display:flex;justify-content:center;align-items:flex-start;padding:clamp(50px,12vh,130px) 16px 16px;background:color-mix(in srgb,#0b1020 55%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:cmdkFade .16s ease}.cmdk{width:100%;max-width:620px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:min(70vh,560px);animation:cmdkIn .2s cubic-bezier(.22,.7,.3,1)}.cmdk-input-row{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border)}.cmdk-input-row svg{width:20px;height:20px;color:var(--text-3);flex-shrink:0}.cmdk-input-row input{flex:1 1;border:none;background:none;outline:none;color:var(--text);font-family:var(--font);font-size:1.05rem}.cmdk-esc{font-size:.72rem;font-weight:700;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:3px 7px}.cmdk-list{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.cmdk-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;border-radius:11px;background:none;cursor:pointer;text-align:left;color:var(--text);transition:background .1s}.cmdk-item[data-active=true]{background:color-mix(in srgb,var(--accent) 13%,var(--surface-2))}.cmdk-emoji{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}.cmdk-text{display:flex;flex-direction:column;min-width:0;flex:1 1}.cmdk-name{font-size:.93rem;font-weight:700;letter-spacing:-.01em}.cmdk-desc{font-size:.78rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-cat{font-size:.72rem;font-weight:700;flex-shrink:0;opacity:.85}.cmdk-empty{padding:34px;text-align:center;color:var(--text-2)}.cmdk-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--border);font-size:.74rem;color:var(--text-3)}.cmdk-foot kbd{font-family:var(--font);font-weight:700;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;margin-right:2px}@keyframes cmdkFade{0%{opacity:0}to{opacity:1}}@keyframes cmdkIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:none}}.tool-hero .th-text{flex:1 1;min-width:0}.share-btn{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;align-self:flex-start;padding:9px 16px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-family:var(--font);font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:var(--shadow-xs);transition:transform .16s,box-shadow .16s,border-color .16s,color .16s}.share-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent)}.share-btn.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}.share-btn svg{width:16px;height:16px}@media (max-width:560px){.share-btn span{display:none}.share-btn{padding:9px 11px}}.sitemap-page{max-width:1100px;padding-top:18px;padding-bottom:60px}.sitemap-hero{text-align:center;padding:16px 0 26px}.sitemap-hero h1{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;letter-spacing:-.03em}.sitemap-hero h1 .grad{background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sitemap-hero>p{max-width:640px;margin:12px auto 0;color:var(--text-2);font-size:1rem;line-height:1.6}.sitemap-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px}.sitemap-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:.84rem;font-weight:600;transition:border-color .15s,transform .15s,box-shadow .15s}.sitemap-chip:hover{border-color:var(--cc);transform:translateY(-2px);box-shadow:var(--shadow-xs)}.sitemap-chip b{color:#fff;background:var(--cc);border-radius:999px;font-size:.7rem;padding:1px 7px}.sitemap-cat{margin-top:34px;scroll-margin-top:calc(var(--nav-h) + 16px)}.sitemap-cat h2{display:flex;align-items:center;gap:11px;font-size:1.3rem;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}.sitemap-badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem;color:#fff;box-shadow:var(--shadow-xs)}.sitemap-cat h2 .cat-count{font-size:.72rem;color:var(--text-2);font-weight:700;background:var(--surface-3);padding:3px 9px;border-radius:999px}.sitemap-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:6px;gap:6px}.sitemap-list a{display:flex;align-items:baseline;gap:9px;padding:9px 12px;border-radius:10px;transition:background .13s,transform .13s}.sitemap-list a:hover{background:var(--surface-3);transform:translateX(3px)}.sl-emoji{flex-shrink:0}.sl-name{font-weight:700;font-size:.9rem}.sl-desc,.sl-name{white-space:nowrap}.sl-desc{color:var(--text-3);font-size:.8rem;overflow:hidden;text-overflow:ellipsis}@media (max-width:560px){.sl-desc{display:none}}