@keyframes highlightPulse{0%{box-shadow:0 0 0 0 rgba(255,77,122,.45)}70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes btnPop{0%,to{transform:scale(1)}45%{transform:scale(1.07)}}@keyframes btnCheckIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes panelFlash{0%{box-shadow:0 0 0 0 rgba(31,132,90,.38)}60%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}:root{--n-0:#ffffff;--n-10:#fff8f9;--n-20:#fbf1f3;--n-30:#f0e3e6;--n-40:#d9c7cc;--n-60:#a9949a;--n-80:#7d6d73;--n-100:#5c4f54;--n-900:#29202e;--primary:#ff4d7a;--primary-hover:#e83f68;--primary-active:#c72f56;--primary-bg:#ffe3ea;--rose:#fd6e92;--rose-bg:#ffe6ec;--rose-text:#b23e5c;--coral:#ff8b5e;--coral-bg:#ffe8dc;--coral-text:#c85a2e;--amber:#ee9f27;--amber-bg:#fdefd7;--amber-text:#8a5a0b;--purple:#8b7fd6;--purple-bg:#eeecfb;--purple-text:#5243aa;--teal:#1fb897;--teal-bg:#e0f8f1;--teal-text:#10725c;--indigo:#6a76e8;--indigo-bg:#e9ebfc;--indigo-text:#3c46ad;--success:#1f845a;--success-bg:#dcfff1;--success-border:#baf3db;--danger:#c9372c;--danger-bg:#ffecea;--danger-border:#ffd2cc;--diff-add:#16a34a;--diff-remove:#dc2626;--accent-live:#2fbf71;--bg:var(--n-10);--bg-subtle:var(--n-20);--surface:#ffffff;--border:var(--n-30);--border-strong:var(--n-40);--text:var(--n-900);--text-secondary:var(--n-100);--text-muted:var(--n-80);--footer-bg:#2a2029;--footer-text:#cbb9c0;--footer-text-strong:#f5eef0;--footer-border:rgba(255, 255, 255, 0.1);--radius-sm:8px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--radius-full:999px;--max-width:1080px;--shadow-sm:0 1px 2px rgba(41, 32, 46, 0.07), 0 1px 1px rgba(41, 32, 46, 0.05);--shadow-md:0 8px 20px -6px rgba(255, 77, 122, 0.18), 0 0 1px rgba(41, 32, 46, 0.1);--shadow-lg:0 18px 34px -14px rgba(255, 77, 122, 0.28), 0 2px 6px rgba(41, 32, 46, 0.08);--shadow-focus:0 0 0 3px rgba(255, 77, 122, 0.25);--ease:cubic-bezier(0.2, 0, 0, 1);--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono","SFMono-Regular","Roboto Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:16px}:root[data-theme=dark]{--n-0:#241b21;--n-20:#332830;--n-30:#3c2f37;--primary:#ff6690;--primary-hover:#ff7fa2;--primary-active:#ff96b3;--primary-bg:#3d2430;--rose:#ff89a8;--rose-bg:#3d2430;--rose-text:#ffb3c6;--coral:#ffa373;--coral-bg:#3d2c22;--coral-text:#ffc199;--amber:#ffc157;--amber-bg:#3d3320;--amber-text:#ffd685;--purple:#a89cf0;--purple-bg:#2b273f;--purple-text:#c3b8fa;--teal:#3fd9b3;--teal-bg:#1c3830;--teal-text:#7ff0d0;--indigo:#8f9af5;--indigo-bg:#262a42;--indigo-text:#b0b8fa;--success:#4ade9b;--success-bg:#163826;--success-border:#1f5c3d;--danger:#ff8478;--danger-bg:#3d201d;--danger-border:#5c2e29;--diff-add:#4ade80;--diff-remove:#f87171;--bg:#1a1418;--bg-subtle:#221a1f;--surface:#241b21;--border:#3c2f37;--border-strong:#4c3c45;--text:#f5eef0;--text-secondary:#cbb9c0;--text-muted:#9c8890;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.35), 0 1px 1px rgba(0, 0, 0, 0.25);--shadow-md:0 8px 20px -6px rgba(255, 102, 144, 0.28), 0 0 1px rgba(0, 0, 0, 0.4);--shadow-lg:0 18px 34px -14px rgba(255, 102, 144, 0.35), 0 2px 6px rgba(0, 0, 0, 0.3);--footer-bg:#100b0d;--footer-text:#9c8890;--footer-text-strong:#f5eef0;--footer-border:rgba(255, 255, 255, 0.08)}*{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html{background:var(--bg)}body,html{margin:0;padding:0;color:var(--text);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary)}a:hover{text-decoration:underline}svg{display:block}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 24px}header.site{position:sticky;top:0;z-index:10;background:var(--surface);background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--border)}header.site .wrap{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px}.search-trigger{margin-inline-start:auto}@media (max-width:760px){.search-trigger{margin-inline-start:0}}.brand{display:flex;align-items:center;gap:14px;font-weight:700;font-size:1.1rem;color:var(--text);letter-spacing:-.01em}.brand img.logo{height:44px;width:auto;aspect-ratio:113/44;display:block}.brand:hover,a{text-decoration:none}nav.site-nav{display:flex;gap:2px;flex-wrap:wrap}.nav-hamburger{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex-shrink:0;background:0 0;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.nav-hamburger:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.nav-hamburger .ham-icon-close,.nav-hamburger.active .ham-icon-open{display:none}.nav-hamburger.active .ham-icon-close{display:block}.nav-group,nav.site-nav{position:relative}.nav-cat{display:flex;align-items:center;gap:5px;color:var(--text-secondary);font-size:.9rem;font-weight:600;padding:8px 14px;border-radius:var(--radius-full);background:0 0;border:0;cursor:pointer;text-decoration:none;transition:background-color .15s var(--ease),color .15s var(--ease)}.nav-cat:hover{color:var(--primary);background:var(--primary-bg);text-decoration:none}.nav-cat::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.55;transition:transform .15s var(--ease)}.nav-group.open .nav-cat::after{transform:rotate(225deg);margin-top:3px}.nav-cat.active{color:var(--primary);background:var(--primary-bg);border:1px solid var(--primary);padding:7px 13px}.nav-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:300px;max-width:min(400px,calc(100vw - 32px));max-height:600px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s var(--ease),transform .15s var(--ease),visibility .15s;z-index:40}.nav-panel.nav-panel-mega{position:fixed;top:calc(var(--header-h,76px) + 8px);left:50%;transform:translateX(-50%) translateY(-6px);display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;width:min(1080px,calc(100vw - 32px));max-width:min(1080px,calc(100vw - 32px));min-width:0;max-height:calc(100vh - var(--header-h,76px) - 24px);overflow-y:auto;align-items:start;align-content:start;padding:20px}.nav-mega-heading{grid-column:1/-1;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:14px 2px 2px;margin:0}.nav-mega-heading:first-child{padding-top:2px}.nav-mega-col{display:contents}.nav-panel::-webkit-scrollbar{width:8px}.nav-panel::-webkit-scrollbar-track{background:transparent}.nav-panel::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}.nav-panel::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.nav-group.open .nav-panel{opacity:1;visibility:visible;transform:translateY(0)}.nav-group:focus-within .nav-panel{opacity:1;visibility:visible;transform:translateY(0)}.nav-group.open .nav-panel.nav-panel-mega,.nav-group:focus-within .nav-panel.nav-panel-mega{transform:translateX(-50%) translateY(0)}@media (hover:hover) and (pointer:fine){.nav-group:hover .nav-panel{opacity:1;visibility:visible;transform:translateY(0)}.nav-group:hover .nav-panel.nav-panel-mega{transform:translateX(-50%) translateY(0)}.nav-group:hover .nav-cat::after{transform:rotate(225deg);margin-top:3px}}.nav-panel a{display:flex;flex-direction:row;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text);font-size:.88rem;font-weight:600}.nav-panel a:hover{background:var(--bg-subtle);text-decoration:none}.nav-panel a.active{background:var(--primary);color:#fff}.nav-panel a.active span{color:rgba(255,255,255,.85)}.nav-panel a span{font-weight:400;font-size:.78rem;color:var(--text-muted)}.nav-panel a svg{flex-shrink:0;margin-top:2px;color:var(--text-muted)}.nav-panel a.active svg,.nav-panel a:hover svg{color:currentColor}.nav-link-body{display:flex;flex-direction:column;gap:2px}.nav-panel.nav-panel-mega a{height:84px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}.nav-panel.nav-panel-mega a:hover{background:var(--surface);border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.nav-panel.nav-panel-mega a.active{border-color:var(--primary)}.nav-panel-mega .nav-link-body{gap:4px;min-width:0;overflow:hidden}.nav-panel-mega .nav-link-body strong{display:block;font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}.nav-panel-mega .nav-link-body span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.32;font-weight:400;font-size:.76rem;color:var(--text-muted)}.lang-switch{position:relative}.lang-switch-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:auto;height:40px;padding:0 12px;background:0 0;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-full)}.lang-switch-btn:hover,.theme-toggle-btn:hover,button.secondary:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.lang-switch-btn svg{width:16px;height:16px;flex-shrink:0}.lang-switch-current{font-size:.78rem;font-weight:700;letter-spacing:.01em}.theme-toggle-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex-shrink:0;background:0 0;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer}.theme-toggle-btn svg{width:17px;height:17px;flex-shrink:0}.theme-toggle-btn .theme-icon-sun{display:none}:root[data-theme=dark] .theme-toggle-btn .theme-icon-moon{display:none}:root[data-theme=dark] .theme-toggle-btn .theme-icon-sun{display:block}.lang-switch-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s var(--ease),transform .15s var(--ease),visibility .15s;z-index:40}[dir=rtl] .lang-switch-panel{right:auto;left:0}.lang-switch.open .lang-switch-panel{opacity:1;visibility:visible;transform:translateY(0)}.lang-switch-panel a{display:block;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text);font-size:.92rem;font-weight:600}.lang-switch-panel a:hover{background:var(--bg-subtle);text-decoration:none}.lang-switch-panel a.active{background:var(--primary);color:#fff}main{padding:48px 0 64px}.breadcrumb{font-size:.85rem;margin:0 0 16px}.breadcrumb,.breadcrumb a,.eyebrow{color:var(--text-muted)}.breadcrumb a:hover,.footer-bottom a:hover,footer.site a:hover{color:var(--primary)}.eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:.85rem;margin-bottom:18px}.eyebrow .sep{color:var(--border-strong);font-weight:400}h1,h2{font-family:var(--font-display);color:var(--text)}h1{font-size:2.4rem;font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:0 0 14px}h2{font-size:1.45rem;letter-spacing:-.015em;margin:48px 0 18px}.eyebrow,h2,h3{font-weight:600}.field label,p.lede{color:var(--text-secondary)}p.lede{font-size:1.08rem;line-height:1.6;margin:0 0 32px;max-width:760px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.panel-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.panel-header .icon-chip{width:36px;height:36px}.panel-header h3{margin:0;font-size:1.05rem}.panel-header p{margin:2px 0 0;font-size:.85rem;color:var(--text-muted)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.field-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:140px}.field label{font-size:.78rem;font-weight:600}.field .hint{font-size:.76rem;color:var(--text-muted);margin-top:2px}input[type=color],input[type=number],input[type=text],select{border:1px solid var(--border);border-radius:var(--radius-md);height:42px;background:var(--n-0)}input[type=number],input[type=text],select{color:var(--text);padding:10px 12px;font-size:.92rem;outline:0;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);font-family:inherit}select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2344546F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}input[type=color]{width:56px;padding:4px;cursor:pointer}input:hover,select:hover{border-color:var(--border-strong)}input:focus,select:focus{border-color:var(--primary);box-shadow:var(--shadow-focus)}.size-unit-group{display:flex}.size-unit-group select{width:auto;min-width:78px;flex-shrink:0;border-top-right-radius:0;border-bottom-right-radius:0;border-right:none;background-color:var(--bg-subtle)}.size-unit-group input{flex:1;min-width:0;border-top-left-radius:0;border-bottom-left-radius:0}.size-unit-group input:focus,.size-unit-group select:focus{position:relative;z-index:1}input[type=range]{accent-color:var(--primary)}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;border:1px solid var(--primary);padding:11px 20px;border-radius:var(--radius-md);font-weight:600;font-size:.92rem;cursor:pointer;transition:background-color .15s var(--ease),transform .05s ease,box-shadow .15s var(--ease);font-family:inherit}button:hover{background:var(--primary-hover);border-color:var(--primary-hover);text-decoration:none}button:active{transform:scale(.98);background:var(--primary-active)}button:focus-visible{box-shadow:var(--shadow-focus);outline:0}.highlight-pulse{animation:highlightPulse 1.1s ease-out 2}@media (prefers-reduced-motion:reduce){.highlight-pulse{animation:none}}button.btn-pop{animation:btnPop .38s var(--ease)}.btn-check{display:inline-flex;align-items:center;justify-content:center;animation:btnCheckIn .22s var(--ease)}.flash-success{animation:panelFlash .9s ease-out 1}@media (prefers-reduced-motion:reduce){.btn-check,.flash-success,button.btn-pop{animation:none}}.mascot-toast{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none;opacity:0;transform:translateY(28px) scale(.9);transform-origin:bottom right;transition:opacity .22s ease,transform .4s cubic-bezier(.34,1.56,.64,1)}.mascot-toast.show{opacity:1;transform:translateY(0) scale(1)}.mascot-bubble{position:relative;background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);padding:7px 14px;margin-bottom:10px;margin-right:6px;font-size:.85rem;font-weight:700;color:var(--text);box-shadow:var(--shadow-sm);white-space:nowrap}.mascot-bubble::after{content:"";position:absolute;bottom:-7px;right:20px;width:13px;height:13px;background:var(--surface);border-right:1.5px solid var(--border-strong);border-bottom:1.5px solid var(--border-strong);transform:rotate(45deg)}.mascot-face{width:44px;aspect-ratio:55/32;line-height:0;filter:drop-shadow(0 3px 5px rgba(41,32,46,.16))}.mascot-face svg{display:block;width:100%;height:100%}@media (min-width:761px){.mascot-face{width:88px}}@media (prefers-reduced-motion:reduce){.mascot-toast{transition:opacity .2s ease}.mascot-toast.no-motion,.mascot-toast.no-motion.show{transform:none}}@media (max-width:480px){.mascot-toast{right:12px;bottom:12px}.mascot-face{width:38px}}button.secondary{background:0 0;border:1px solid var(--border-strong);color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn,.btn:hover{text-decoration:none}.hero-actions{display:flex;align-items:center;gap:14px;margin:24px 0 32px;flex-wrap:wrap}.btn-hero{height:48px;padding:0 24px;font-size:.96rem;box-shadow:var(--shadow-md)}.hero-actions-or{font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--text-muted);flex-shrink:0}.btn-hero svg{transition:transform .15s var(--ease)}.btn-hero:hover svg{transform:translateY(2px)}.dropzone{border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 24px;text-align:center;color:var(--text-secondary);cursor:pointer;transition:border-color .15s var(--ease),background-color .15s var(--ease);background:var(--bg-subtle)}.dropzone.drag,.dropzone:hover{border-color:var(--primary);background:var(--primary-bg)}.dropzone .dz-icon{width:40px;height:40px;margin:0 auto 12px;color:var(--text-muted)}.dropzone strong{color:var(--text)}.dropzone input[type=file]{display:none}.result-box,.stage-wrap img{border-radius:var(--radius-md)}.result-box{margin-top:16px;padding:16px;background:var(--bg-subtle);border:1px solid var(--border);font-size:.9rem;color:var(--text-secondary);display:flex;gap:10px;align-items:flex-start}.result-box .r-icon{width:18px;height:18px;flex-shrink:0;margin-top:1px;color:var(--text-muted)}.result-box.ok{background:var(--success-bg);border-color:var(--success-border)}.result-box.ok .r-icon{color:var(--success)}.result-box.error{background:var(--danger-bg);border-color:var(--danger-border)}.result-box.error .r-icon{color:var(--danger)}.resize-nudge p,.result-box strong{color:var(--text);font-weight:600}.result-box .r-body{flex:1;min-width:0}.resize-nudge,.result-box button{margin-top:12px}.resize-nudge{padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.resize-nudge p{margin:0 0 10px;font-weight:500}.resize-nudge button{margin-top:0}.stage-wrap{position:relative;display:inline-block;max-width:100%;margin-top:16px}.stage-wrap img{display:block;max-width:100%;max-height:480px;user-select:none;-webkit-user-drag:none}.crop-box,.crop-handle{position:absolute;touch-action:none}.crop-box{border:2px solid var(--primary);background:rgba(255,255,255,.08);box-shadow:0 0 0 2000px rgba(0,0,0,.45);cursor:move}.crop-handle{right:-8px;bottom:-8px;width:16px;height:16px;border-radius:50%;background:var(--primary);border:2px solid #fff;cursor:nwse-resize}.wm-live-preview{position:absolute;white-space:nowrap;font-weight:700;pointer-events:none;color:#fff}.meta-panel{margin-top:20px}.meta-summary{font-size:.88rem;color:var(--text-secondary);margin:0 0 10px}.meta-list{display:flex;flex-direction:column;gap:1px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}.meta-row{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;background:var(--surface);font-size:.85rem}.meta-row:nth-child(odd){background:var(--bg-subtle)}.meta-label{color:var(--text-muted);flex-shrink:0}.meta-value{color:var(--text);font-weight:500;text-align:right;word-break:break-word}.diff-row{gap:10px;align-items:baseline;border-radius:var(--radius-sm);font-family:var(--font-mono, monospace);font-size:.83rem;flex-wrap:wrap}.diff-added{background:var(--success-bg)}.diff-removed{background:var(--danger-bg)}.diff-changed{background:var(--amber-bg)}.diff-path,.diff-tag{font-weight:700;flex-shrink:0}.diff-added .diff-tag{color:var(--success)}.diff-removed .diff-tag{color:var(--danger)}.diff-changed .diff-tag{color:var(--amber-text)}.diff-path{color:var(--text);font-weight:600}.diff-val{color:var(--text-secondary);word-break:break-word}.diff-arrow{color:var(--text-muted)}.regex-highlighted{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, monospace);font-size:.88rem;padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);min-height:80px;line-height:1.6}mark.regex-match{background:var(--primary-bg);color:var(--primary);border-radius:3px;padding:1px 2px}.match-row{padding:8px 12px;border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:.85rem;margin-bottom:6px}.match-index{color:var(--text-muted);margin-right:10px}.match-text{color:var(--text);font-weight:600}.match-groups{margin-top:4px;display:flex;flex-wrap:wrap;gap:10px}.match-group{font-size:.8rem;color:var(--text-secondary)}.code-output,.color-copy-row input,.palette-swatch-info strong{font-family:var(--font-mono, monospace)}.code-output{font-size:.83rem;white-space:pre-wrap;word-break:break-word;padding:14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border);color:var(--text);max-height:320px;overflow:auto}.case-btn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:16px}.case-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);font-size:.85rem;font-weight:500;padding:9px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s var(--ease),color .15s var(--ease),background-color .15s var(--ease)}.case-btn:hover{border-color:var(--border-strong);color:var(--text)}.case-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.limit-over .meta-value{color:var(--danger);font-weight:700}.batch-file-row .bf-status.ok,.limit-ok .meta-value{color:var(--success)}.favicon-preview-grid{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}.favicon-preview-item{display:flex;flex-direction:column;align-items:center;gap:6px}.favicon-preview-item img{border-radius:var(--radius-sm);border:1px solid var(--border)}.favicon-preview-item span{font-size:.75rem;color:var(--text-muted)}.favicon-preview-item img,.layer-panel{background:var(--bg-subtle)}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin-top:16px}.palette-swatch{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;background:var(--surface);padding:0;text-align:left;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}.palette-swatch:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.palette-swatch-color{height:64px}.palette-swatch-info{padding:8px 10px}.palette-swatch-info strong{display:block;font-size:.82rem}.palette-swatch-info span{font-size:.72rem;color:var(--text-muted)}.contrast-preview{border-radius:var(--radius-md);border:1px solid var(--border);padding:28px 20px;text-align:center;margin-top:16px}.contrast-preview .cp-large{font-size:1.6rem;font-weight:700;margin-bottom:6px}.contrast-preview .cp-normal{font-size:.95rem}.contrast-ratio-display{font-size:2.2rem;font-weight:800;font-family:var(--font-display);text-align:center;margin:16px 0 4px}.contrast-badges{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}.contrast-badge{font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:var(--radius-full)}.contrast-badge.pass{background:var(--success-bg);color:var(--success)}.contrast-badge.fail{background:var(--danger-bg);color:var(--danger)}.color-field-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}.color-swatch-lg{width:100%;height:90px;border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:16px}.color-copy-row{display:flex;align-items:center;gap:8px}.color-copy-row input{flex:1}.csv-table-wrap{overflow:auto;max-height:460px;border:1px solid var(--border);border-radius:var(--radius-md);margin-top:16px}.csv-table{border-collapse:collapse;width:100%;font-size:.85rem}.csv-table td,.csv-table th{border:1px solid var(--border);padding:0}.csv-table th{background:var(--bg-subtle);font-weight:600;text-align:left}.csv-table input{width:100%;height:auto;border:0;border-radius:0;padding:8px 10px;background:0 0}.csv-table input:focus{background:var(--primary-bg);box-shadow:none;outline:0}.csv-table-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.batch-file-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.batch-file-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:.85rem}.batch-file-row .bf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.batch-file-row .bf-meta{color:var(--text-muted);font-size:.78rem;flex-shrink:0}.batch-file-row .bf-status{flex-shrink:0;font-size:.78rem;font-weight:600}.batch-file-row .bf-status.error{color:var(--danger)}.batch-file-row .bf-status.pending,.related-card span{color:var(--text-muted)}.batch-file-row .bf-remove{flex-shrink:0;background:0 0;border:0;color:var(--text-muted);cursor:pointer;padding:2px 6px;font-size:.9rem}.batch-file-row .bf-remove:hover,.file-row.file-row-error .file-row-name{color:var(--danger)}.batch-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:13px;box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease)}.icon-chip{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s var(--ease)}.icon-chip svg{width:20px;height:20px}.icon-chip.c-pink{background:var(--primary-bg);color:var(--primary)}.icon-chip.c-rose{background:var(--rose-bg);color:var(--rose-text)}.icon-chip.c-coral{background:var(--coral-bg);color:var(--coral-text)}.icon-chip.c-amber{background:var(--amber-bg);color:var(--amber-text)}.icon-chip.c-purple{background:var(--purple-bg);color:var(--purple-text)}.icon-chip.c-teal{background:var(--teal-bg);color:var(--teal-text)}.icon-chip.c-indigo{background:var(--indigo-bg);color:var(--indigo-text)}.card h3,.card p,.category-tile h3{margin:0;font-size:1.02rem;color:var(--text)}.card h3{font-size:1.18rem;font-weight:600;letter-spacing:-.012em;font-family:var(--font-display)}.card:hover .icon-chip{transform:rotate(-4deg) scale(1.05)}.card p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;flex:1}.card-link{font-size:.88rem;font-weight:600;color:var(--primary);display:inline-flex;align-items:center;gap:5px}.card-link svg{width:14px;height:14px;transition:transform .15s var(--ease)}.card:hover .card-link svg{transform:translateX(3px)}.grid-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:8px}.category-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-decoration:none;box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s var(--ease)}.category-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-strong)}.category-tile .icon-chip{width:48px;height:48px}.category-tile .icon-chip svg{width:24px;height:24px}.category-tile h3{font-size:1.05rem}.category-tile .category-count,.related-tools h2{margin:0;font-size:.82rem;color:var(--text-muted)}.related-tools{margin-top:48px}.related-tools h2{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:0 0 16px}.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.related-card{display:block;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}.related-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px);text-decoration:none}.related-card strong{display:block;font-size:.9rem;color:var(--text);margin-bottom:3px}.related-card span{display:block;font-size:.8rem;line-height:1.4}.note{font-size:.86rem;color:var(--text-muted);margin-top:12px;line-height:1.55}canvas.preview{max-width:100%;background:linear-gradient(45deg,var(--n-20) 25%,transparent 25%),linear-gradient(-45deg,var(--n-20) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--n-20) 75%),linear-gradient(-45deg,transparent 75%,var(--n-20) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}canvas.preview,img.preview{border-radius:var(--radius-md);border:1px solid var(--border)}footer.site{border-top:1px solid var(--footer-border);padding:44px 0 24px;font-size:.85rem;background:var(--footer-bg)}.footer-grid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:28px 28px}.footer-brand{grid-row:1/3}.footer-brand-name,.footer-col h3{font-weight:700;color:var(--footer-text-strong)}.footer-brand-name{font-family:var(--font-display);font-size:1.15rem;margin-bottom:8px;letter-spacing:-.01em}.footer-tagline{margin:0;line-height:1.55;max-width:320px;color:var(--footer-text)}.footer-col h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;margin:0 0 14px}.footer-col{display:flex;flex-direction:column;gap:9px}.footer-bottom a,footer.site,footer.site a{color:var(--footer-text)}.faq-item summary,.footer-bottom{display:flex;justify-content:space-between}.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--footer-border);font-size:.78rem;flex-wrap:wrap;gap:8px}.tool-hero{display:flex;align-items:flex-start;gap:22px;margin-bottom:4px}.tool-hero-icon{width:60px;height:60px;border-radius:var(--radius-lg);flex-shrink:0}.tool-hero-icon svg{width:30px;height:30px}.tool-hero-text{flex:1;min-width:0}.tool-hero-text .breadcrumb{margin-bottom:10px}@media (max-width:640px){.tool-hero{gap:14px}.tool-hero-icon{width:46px;height:46px}.tool-hero-icon svg{width:24px;height:24px}}.faq-list{display:flex;flex-direction:column;gap:10px;margin-top:8px;width:100%}.faq-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:0 20px}.faq-item summary{cursor:pointer;list-style:none;padding:16px 0;font-weight:600;color:var(--text);align-items:center;gap:12px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .2s var(--ease);flex-shrink:0}.faq-item[open] summary::after{transform:rotate(-135deg)}.faq-item p{margin:0 0 18px;color:var(--text-secondary);line-height:1.6;font-size:.92rem}[dir=rtl] .faq-item summary::after{transform:rotate(-45deg)}[dir=rtl] .faq-item[open] summary::after{transform:rotate(135deg)}.legal-content{max-width:720px}.legal-content h2{margin:40px 0 12px}.legal-content h2:first-of-type{margin-top:32px}.legal-content p,.legal-content ul{margin:0 0 4px;line-height:1.65;color:var(--text-secondary)}.legal-content .note{color:var(--text-muted);font-size:.85rem;margin-top:4px}.legal-content.wide{max-width:900px}.legal-content ul{margin:0 0 16px;padding-left:22px;line-height:1.7}.legal-content li{margin-bottom:4px}.compare-table-wrap{overflow-x:auto;margin:24px 0 32px;border:1px solid var(--border);border-radius:var(--radius-md)}table.compare-table{width:100%;border-collapse:collapse;font-size:.92rem;background:var(--surface)}table.compare-table td,table.compare-table th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}table.compare-table thead th{background:var(--bg-subtle);font-weight:700}table.compare-table tbody tr:last-child td{border-bottom:none}table.compare-table td.yes{color:var(--diff-add);font-weight:600}table.compare-table td.no{color:var(--text-muted)}@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr 1fr}.footer-brand{grid-column:1/-1;grid-row:auto;margin-bottom:6px}}@media (max-width:640px){.footer-grid{grid-template-columns:1fr 1fr}}.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.bg-blobs{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none}.bg-blobs .blob{position:absolute;border-radius:50%;filter:blur(64px);opacity:.55;will-change:transform;transition:transform 1.2s cubic-bezier(.2,0,0,1)}.bg-blobs .blob-1{top:-12%;left:-8%;width:46vw;height:46vw;max-width:620px;max-height:620px;background:radial-gradient(circle at 35% 30%,#ff8fa8 0,transparent 60%),radial-gradient(circle at 65% 70%,#ffcf7a 0,transparent 62%)}.bg-blobs .blob-2{bottom:-18%;right:-10%;width:40vw;height:40vw;max-width:540px;max-height:540px;background:radial-gradient(circle at 40% 35%,#ff9fb8 0,transparent 60%),radial-gradient(circle at 65% 65%,#b3a3f2 0,transparent 62%);opacity:.5}.bg-blobs .blob-3{top:30%;right:18%;width:24vw;height:24vw;max-width:320px;max-height:320px;background:radial-gradient(circle at 40% 40%,#ffb38a 0,transparent 58%),radial-gradient(circle at 65% 60%,#6be0c0 0,transparent 60%);opacity:.42}@media (prefers-reduced-motion:reduce){.bg-blobs .blob{transition:none}}@media (max-width:760px){.bg-blobs .blob-3{display:none}}:root[data-theme=dark] .bg-blobs .blob{opacity:.32}:root[data-theme=dark] .bg-blobs .blob-1{background:radial-gradient(circle at 35% 30%,#ff6690 0,transparent 60%),radial-gradient(circle at 65% 70%,#ffc157 0,transparent 62%)}:root[data-theme=dark] .bg-blobs .blob-2{background:radial-gradient(circle at 40% 35%,#ff89a8 0,transparent 60%),radial-gradient(circle at 65% 65%,#a89cf0 0,transparent 62%);opacity:.28}:root[data-theme=dark] .bg-blobs .blob-3{background:radial-gradient(circle at 40% 40%,#ffa373 0,transparent 58%),radial-gradient(circle at 65% 60%,#3fd9b3 0,transparent 60%);opacity:.24}.bg-blobs::after{content:"";position:absolute;inset:0;opacity:.035;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}:root[data-theme=dark] .bg-blobs::after{opacity:.05}.option-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.option-row:last-child{border-bottom:none}.option-row .option-label{font-size:.9rem;color:var(--text);font-weight:500}.option-row .option-hint{font-size:.78rem;color:var(--text-muted);margin-top:1px}.option-row.drag-active{background:var(--primary-bg);border-radius:var(--radius-sm);outline:2px solid var(--primary);outline-offset:-2px}.switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .track{position:absolute;inset:0;background:var(--n-30);border-radius:var(--radius-full);transition:background-color .15s var(--ease);cursor:pointer}.switch .track::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:var(--surface);border-radius:50%;box-shadow:0 1px 3px rgba(41,32,46,.25);transition:transform .18s var(--ease)}.switch input:checked+.track{background:var(--primary)}.switch input:checked+.track::before{transform:translateX(18px)}.switch input:focus-visible+.track{box-shadow:var(--shadow-focus)}input[type=range].slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:var(--radius-full);background:var(--n-30);outline:0}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);border:3px solid var(--surface);box-shadow:0 1px 4px rgba(41,32,46,.3);cursor:pointer}input[type=range].slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary);border:3px solid var(--surface);box-shadow:0 1px 4px rgba(41,32,46,.3);cursor:pointer;border:0}.slider-row{display:flex;align-items:center;gap:14px}.slider-row .slider-out{min-width:34px;text-align:center;font-weight:700;font-size:.9rem;color:var(--primary);background:var(--primary-bg);border-radius:var(--radius-sm);padding:4px 8px}.slider-row .slider-num{width:76px;flex-shrink:0;height:36px;padding:6px 8px;text-align:center;font-weight:700}.slider-row .slider-suffix{font-size:.82rem;color:var(--text-muted);flex-shrink:0}.strength-fill,.strength-track{border-radius:var(--radius-full)}.strength-track{height:8px;background:var(--n-20);overflow:hidden}.strength-fill{height:100%;width:0%;transition:width .3s var(--ease),background-color .3s var(--ease)}.strength-fill.s-weak{background:var(--danger)}.strength-fill.s-fair{background:var(--amber)}.strength-fill.s-strong{background:var(--teal)}.strength-fill.s-vstrong{background:var(--success)}.mono-output{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:1.15rem;letter-spacing:.02em;width:100%;padding:16px 18px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-subtle);color:var(--text);resize:none}.mono-output:focus,textarea.mono-area:focus{outline:0;border-color:var(--primary);box-shadow:var(--shadow-focus)}.tabs,textarea.mono-area{border-radius:var(--radius-md)}textarea.mono-area{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.88rem;line-height:1.6;width:100%;padding:14px 16px;border:1px solid var(--border);background:var(--n-0);color:var(--text);resize:vertical}.tabs{display:inline-flex;background:var(--bg-subtle);padding:3px;gap:2px}.tabs button.tab{background:0 0;color:var(--text-secondary);border:0;padding:8px 16px;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm);box-shadow:none}.tabs button.tab:hover{background:0 0;color:var(--text)}.tabs button.tab.active{color:var(--primary);box-shadow:var(--shadow-sm)}.sig-pad-wrap canvas,.tabs button.tab.active,.tabs button.tab.active:hover,.wm-preview-page{background:var(--surface)}.wm-preview-page{width:100%;max-width:280px;aspect-ratio:595/842;margin:0 auto;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.wm-preview-text{display:inline-block;white-space:nowrap;font-weight:700;line-height:1;will-change:transform}.sig-pad-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;overflow:hidden}.sig-pad-wrap canvas{display:block;width:100%;max-width:500px;height:180px;touch-action:none;cursor:crosshair}.sig-type-preview{margin-top:12px;padding:20px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:2.2rem;line-height:1.2;color:var(--text);text-align:center;word-break:break-word}.count-pill{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-secondary)}.count-pill.over{background:var(--danger-bg);color:var(--danger)}.count-pill.near{background:var(--amber-bg);color:var(--amber-text)}.slug-row,.url-preview{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--n-0)}.url-preview{gap:2px;padding:12px 16px;font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.92rem;overflow-x:auto;white-space:nowrap}.url-preview .url-scheme{color:var(--text-muted)}.url-preview .url-domain{color:var(--text-secondary)}.url-preview .url-slug{color:var(--primary);font-weight:600}.slug-row{justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:8px}.slug-row-title{font-size:.82rem;color:var(--text-muted);margin-bottom:3px}.slug-row-slug{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.9rem;color:var(--primary);font-weight:600;word-break:break-all}.slug-row-text{min-width:0;flex:1}.slug-row button{flex-shrink:0;padding:7px 14px;font-size:.82rem}.file-list{margin-top:20px;display:flex;flex-direction:column;gap:8px}.file-row,.file-row-index{display:flex;align-items:center}.file-row{gap:12px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--n-0)}.file-row-index{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--primary-bg);color:var(--primary);font-size:.76rem;font-weight:700;justify-content:center}.file-row-icon{flex-shrink:0;color:var(--text-muted)}.file-row-icon svg{display:block;width:18px;height:18px}.file-row-info{min-width:0;flex:1}.file-row-name{font-size:.88rem;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row-size{font-size:.78rem;color:var(--text-muted);margin-top:2px}.file-row-actions{flex-shrink:0;display:flex;gap:4px}.file-row-actions button{background:0 0;color:var(--text-secondary);border:1px solid var(--border);padding:6px 8px;box-shadow:none}.file-row-actions button svg{display:block;width:15px;height:15px}.file-row-actions button:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--border-strong)}.file-row-actions button:disabled{opacity:.35;cursor:not-allowed}.file-row-actions button:disabled:hover{background:0 0;color:var(--text-secondary);border-color:var(--border)}.file-row-actions button.file-row-remove:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.thumb-grid{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px}.thumb-card{position:relative;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--n-0);padding:8px 8px 10px;transition:border-color .15s var(--ease),opacity .15s var(--ease)}.thumb-card-canvas-wrap{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-subtle);border:1px solid var(--border);aspect-ratio:3/4;display:flex;align-items:center;justify-content:center}.thumb-card-canvas-wrap canvas,.thumb-card-canvas-wrap img{max-width:100%;max-height:100%;display:block}.thumb-card-badge,.thumb-card-remove{position:absolute;top:6px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow-sm)}.thumb-card-badge{left:6px;min-width:20px;height:20px;padding:0 5px;color:var(--text);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}.thumb-card-remove{right:6px;width:22px;height:22px;padding:0;color:var(--danger);border:1px solid var(--border)}.thumb-card-remove svg{width:13px;height:13px;display:block}.file-row.file-row-error,.thumb-card-remove:hover{background:var(--danger-bg);border-color:var(--danger-border)}.thumb-card-actions{margin-top:8px;display:flex;gap:4px;justify-content:center}.thumb-card-actions button{flex:1;background:0 0;color:var(--text-secondary);border:1px solid var(--border);padding:5px 0;box-shadow:none}.thumb-card-actions button svg{width:14px;height:14px;display:block;margin:0 auto}.thumb-card-actions button:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--border-strong)}.thumb-card-actions button:disabled{opacity:.35;cursor:not-allowed}.thumb-card-actions button:disabled:hover{background:0 0;color:var(--text-secondary);border-color:var(--border)}.thumb-card.removed{opacity:.4;border-color:var(--danger-border)}.thumb-card.removed .thumb-card-canvas-wrap{filter:grayscale(1)}.thumb-card.removed .thumb-card-remove{color:var(--success);background:var(--success-bg);border-color:var(--success-border)}.preset-row{display:flex;flex-wrap:wrap;gap:8px}.preset-btn{padding:7px 14px;font-size:.82rem}.swatch-row{display:flex;flex-wrap:wrap;gap:8px}.swatch-btn{width:32px;height:32px;border-radius:var(--radius-full);border:2px solid var(--border);cursor:pointer;padding:0;flex-shrink:0;transition:transform .1s ease,border-color .15s ease}.swatch-btn:hover{transform:scale(1.08)}.swatch-btn:focus-visible{box-shadow:var(--shadow-focus);outline:0}.swatch-btn.active{border-color:var(--primary)}.style-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.style-tile{display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 6px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .1s var(--ease);font-family:inherit}.style-tile:hover{border-color:var(--border-strong);transform:translateY(-1px)}.style-tile.active{border-color:var(--primary);box-shadow:var(--shadow-focus)}.style-tile .tile-swatch{width:28px;height:28px;border-radius:var(--radius-full);border:1px solid rgba(15,23,42,.08);flex-shrink:0}.style-tile .tile-swatch.custom-swatch{background:conic-gradient(from 0deg,#ff4d7a,#60a5fa,#6ee7b7,#f5f0e8,#ff4d7a)}.style-tile .tile-swatch.image-swatch{display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);color:var(--text-muted)}.style-tile .tile-label{font-size:.72rem;font-weight:600;color:var(--text-secondary);text-align:center;line-height:1.25}.md-preview a,.style-tile.active .tile-label{color:var(--primary)}@media (max-width:560px){.style-picker{grid-template-columns:repeat(2,1fr)}}.json-tree{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.85rem;line-height:1.7;background:var(--n-0);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;max-height:480px;overflow:auto}.jt-head{display:flex;align-items:center;cursor:pointer;user-select:none}.jt-toggle{margin-right:4px;font-size:.7rem;width:12px;display:inline-block}.jt-bracket,.jt-count,.jt-toggle{color:var(--text-muted)}.jt-bracket{font-weight:700}.jt-count{font-size:.78rem;margin-left:4px}.jt-body{margin-left:18px;border-left:1px solid var(--border);padding-left:12px}.jt-row{display:flex;align-items:flex-start;flex-wrap:wrap}.jt-key{color:var(--rose-text);font-weight:600}.jt-more{color:var(--text-muted);font-style:italic}.jt-string{color:var(--teal-text)}.jt-number{color:var(--indigo-text)}.jt-boolean{color:var(--amber-text);font-weight:600}.jt-null{color:var(--text-muted);font-style:italic}.md-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border)}.md-toolbar button{background:0 0;border:1px solid var(--border);color:var(--text-secondary);font-weight:600;font-size:.8rem;padding:6px 10px;border-radius:var(--radius-sm)}.md-toolbar button:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--border-strong)}.md-toolbar button.md-toolbar-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px}.md-toolbar-divider{width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.md-pane,.md-preview pre{border-radius:var(--radius-md)}.md-pane{border:1px solid var(--border);height:480px;overflow:auto}.md-preview code,textarea.md-source{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}.md-preview,textarea.md-source{line-height:1.65;color:var(--text)}textarea.md-source{width:100%;height:100%;border:0;outline:0;resize:none;padding:16px;font-size:.88rem;background:var(--n-0)}.md-preview{padding:16px 24px;background:var(--surface);font-size:.95rem}.md-preview h1,.md-preview h2,.md-preview h3{line-height:1.3;margin:1.2em 0 .5em}.md-preview h1{font-size:1.6rem}.md-preview h2{font-size:1.3rem;margin-top:1.4em}.md-preview h3{font-size:1.1rem}.md-preview p{margin:.7em 0}.md-preview ol,.md-preview ul{padding-left:1.4em;margin:.7em 0}.md-preview blockquote{margin:.9em 0;padding:4px 16px;border-left:3px solid var(--primary);color:var(--text-secondary);border-radius:0 var(--radius-sm) var(--radius-sm)0}.md-preview code{padding:2px 6px;border-radius:4px;font-size:.85em;color:var(--rose-text)}.md-preview pre{background:var(--n-900);color:#fdf2f4;padding:14px 16px;overflow-x:auto;margin:.9em 0}.md-preview pre code{background:0 0;color:inherit;padding:0}.md-preview table{border-collapse:collapse;width:100%;margin:.9em 0;font-size:.88rem}.md-preview td,.md-preview th{border:1px solid var(--border);padding:6px 10px;text-align:left}.md-preview blockquote,.md-preview code,.md-preview th{background:var(--bg-subtle)}.md-preview img{max-width:100%;border-radius:var(--radius-sm)}.md-preview hr{border:0;border-top:1px solid var(--border);margin:1.4em 0}@media (max-width:760px){.two-col{grid-template-columns:1fr}h1{font-size:1.85rem}.nav-hamburger{display:inline-flex;order:3}header.site .wrap{position:relative}.brand{order:1}.lang-switch{order:2}nav.site-nav{display:none;order:4;flex-direction:column;align-items:stretch;gap:4px;width:100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);max-height:calc(100vh - 90px);overflow-y:auto}nav.site-nav.mobile-open{display:flex}.nav-cat,.nav-group{width:100%}.nav-cat{justify-content:space-between;padding:10px 12px;font-size:.9rem}.nav-panel{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:0 0;max-width:none;min-width:0;width:100%;padding:2px 0 6px 10px;display:none}.nav-group.open .nav-panel{display:block}.nav-panel.nav-panel-mega{position:static;left:auto;top:auto;transform:none;grid-template-columns:1fr;gap:6px;width:100%;max-width:none;min-width:0;max-height:none;overflow-y:visible;padding:2px 0 6px 10px}.nav-mega-heading{padding-left:0}.nav-panel.nav-panel-mega a{height:auto;min-height:64px}body.nav-open-lock{overflow:hidden}}@media (max-width:560px){.panel{padding:18px}main{padding:32px 0 56px}}[dir=rtl] .nav-panel{left:auto;right:0}[dir=rtl] .nav-panel.nav-panel-mega{left:50%;right:auto}@media (max-width:760px){[dir=rtl] .nav-panel{left:0;right:auto}[dir=rtl] .nav-panel.nav-panel-mega{left:auto;right:auto}}[dir=rtl] select{background-position:left 12px center;padding-right:12px;padding-left:36px}[dir=rtl] .size-unit-group select{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);border-top-left-radius:0;border-bottom-left-radius:0;border-right:1px solid var(--border);border-left:none}[dir=rtl] .size-unit-group input{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .switch .track::before{left:auto;right:3px}[dir=rtl] .switch input:checked+.track::before{transform:translateX(-18px)}[dir=rtl] .jt-toggle{margin-right:0;margin-left:4px}[dir=rtl] .jt-count{margin-left:0;margin-right:4px}[dir=rtl] .jt-body{margin-left:0;margin-right:18px;border-left:none;border-right:1px solid var(--border);padding-left:0;padding-right:12px}[dir=rtl] .md-preview ol,[dir=rtl] .md-preview ul{padding-left:0;padding-right:1.4em}[dir=rtl] .md-preview blockquote{border-left:none;border-right:3px solid var(--primary);border-radius:var(--radius-sm)0 0 var(--radius-sm)}[dir=rtl] .md-preview td,[dir=rtl] .md-preview th{text-align:right}[dir=rtl] .card-link svg,[dir=rtl] .related-card strong{direction:rtl}[dir=rtl] .card:hover .card-link svg{transform:translateX(-3px)}.grad-text{background:linear-gradient(110deg,var(--primary) 0%,var(--coral) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.card,.card:hover{text-decoration:none}.card:focus-visible{outline:0;box-shadow:var(--shadow-focus)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px) scale(1.01);border-color:var(--border-strong)}.hero-search input,.search-trigger{border-radius:var(--radius-full);border:1px solid var(--border)}.search-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;flex-shrink:0;background:0 0;color:var(--text-muted);cursor:pointer}.search-trigger:hover{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-secondary)}.search-trigger svg{width:16px;height:16px;flex-shrink:0}.cmdk-overlay[hidden],.hero-search-results[hidden],.search-trigger kbd,.search-trigger span{display:none}@media (max-width:760px){.search-trigger{order:2}}.hero-search{position:relative;flex:1 1 260px;max-width:380px}.hero-search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-muted);pointer-events:none}.hero-search input{width:100%;height:48px;padding:0 14px 0 41px;background:var(--surface);box-shadow:var(--shadow-sm);font-size:.92rem}.hero-search input:hover{border-color:var(--border-strong)}.hero-search input:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:0}.hero-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;max-height:360px;overflow-y:auto;z-index:30}@media (max-width:760px){.hero-search{flex-basis:100%;max-width:none}.hero-actions-or{flex-basis:100%;text-align:center}}.cmdk-overlay{position:fixed;inset:0;z-index:300;background:color-mix(in srgb,var(--n-900) 45%,transparent);backdrop-filter:blur(2px);align-items:flex-start;justify-content:center;padding:12vh 20px 20px}.cmdk-overlay:not([hidden]){display:flex}.cmdk-modal{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 60px -20px rgba(0,0,0,.35);overflow:hidden}.cmdk-input-row{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text-muted)}.cmdk-input-row svg{width:18px;height:18px;flex-shrink:0}.cmdk-input-row input{flex:1;border:0;outline:0;background:0 0;color:var(--text);font-size:1rem;height:auto;padding:0;font-family:inherit}.cmdk-input-row kbd{font-family:inherit;font-size:.72rem;font-weight:600;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:2px 6px;flex-shrink:0}.cmdk-results{max-height:360px;overflow-y:auto;padding:8px}.cmdk-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:var(--radius-sm);color:var(--text)}.cmdk-item.active,.cmdk-item:hover{background:var(--bg-subtle);text-decoration:none}.cmdk-item-body{display:flex;flex-direction:column;gap:2px;min-width:0}.cmdk-item-body strong{font-size:.92rem}.cmdk-item-body span,.cmdk-item-cat,.install-banner-text span{font-size:.78rem;color:var(--text-muted)}.cmdk-item-cat{flex-shrink:0;font-size:.72rem;font-weight:600;background:var(--bg-subtle);border-radius:var(--radius-full);padding:3px 9px}.cmdk-item.active .cmdk-item-cat{background:var(--surface)}.cmdk-empty{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:.88rem}.diff-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.diff-stat{font-size:.82rem;font-weight:600;padding:5px 12px;border-radius:var(--radius-full)}.diff-stat-add{background:rgba(34,197,94,.14);color:var(--diff-add)}.diff-stat-remove{background:rgba(239,68,68,.14);color:var(--diff-remove)}.diff-stat-equal{background:var(--bg-subtle);color:var(--text-muted)}.diff-view{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-size:.84rem;line-height:1.7;border:1px solid var(--border);border-radius:var(--radius-md);overflow-x:auto;background:var(--n-0)}.diff-row{display:flex;white-space:pre;padding:0 10px}.diff-ln,.diff-marker{display:inline-block;flex-shrink:0;user-select:none}.diff-ln{width:40px;color:var(--text-muted);opacity:.6;text-align:right;padding-right:10px}.diff-marker{width:16px;text-align:center;font-weight:700}.diff-text{white-space:pre-wrap;word-break:break-word}.diff-equal{color:var(--text)}.diff-add{background:rgba(34,197,94,.12)}.diff-add .diff-marker{color:var(--diff-add)}.diff-remove{background:rgba(239,68,68,.12)}.diff-remove .diff-marker{color:var(--diff-remove)}[data-theme=dark] .diff-stat-add{background:rgba(34,197,94,.18)}[data-theme=dark] .diff-stat-remove{background:rgba(239,68,68,.18)}[data-theme=dark] .diff-add{background:rgba(34,197,94,.16)}[data-theme=dark] .diff-remove{background:rgba(239,68,68,.16)}.install-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:500;max-width:480px;margin:0 auto;opacity:0;transform:translateY(16px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}.install-banner.visible{opacity:1;transform:translateY(0);pointer-events:auto}.install-banner-inner{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 12px 32px rgba(0,0,0,0.16));padding:12px 14px}.install-banner-icon{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-subtle);display:flex;align-items:center;justify-content:center}.install-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;padding-left:8px}.install-banner-text strong{font-size:.9rem}.install-banner-btn,.install-banner-close{flex-shrink:0;border:0;cursor:pointer;border-radius:var(--radius-sm)}.install-banner-btn{background:var(--primary);color:#fff;padding:8px 14px;font-size:.85rem;font-weight:600}.install-banner-btn:hover{opacity:.92}.install-banner-close{width:32px;height:32px;padding:0;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-banner-close:hover{background:var(--border-strong);color:var(--text)}@media (max-width:480px){.install-banner-text span{display:none}}.nav-en-tag{font-size:.65em;font-weight:600;opacity:.6;margin-left:.35em;vertical-align:.1em;letter-spacing:.02em}.notfound-wrap{max-width:640px;margin:0 auto;padding:64px 24px 48px;text-align:center}.notfound-code{font-family:var(--font-display);font-size:88px;font-weight:800;color:var(--primary);line-height:1;margin:0 0 8px;opacity:.85}.notfound-wrap .lede{margin-left:auto;margin-right:auto}.notfound-wrap .hero-search{margin:0 auto 24px;max-width:420px}.notfound-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.cat-band{padding:32px;border-radius:16px;margin:32px 0;background:color-mix(in srgb,var(--surface) 85%,transparent);border:1px solid var(--border)}.cat-band h2{margin:0;font-size:2rem}.cat-band-subtitle{margin:6px 0 20px;color:var(--text-secondary);font-size:1rem;max-width:520px}@media (max-width:640px){.cat-band{padding:20px}.cat-band h2{font-size:1.6rem}}
/* --- homepage v2 (P0 redesign) --- */.home-main{padding-top:0}.hero-v2{min-height:76vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;padding:48px 24px}.hero-v2 .hero-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(560px 300px at 50% 88%,color-mix(in srgb,var(--primary) 7%,transparent),transparent 65%),radial-gradient(800px 420px at 50% -10%,color-mix(in srgb,var(--primary) 5%,transparent),transparent 60%)}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,transparent);border-radius:var(--radius-full);padding:6px 14px;margin-bottom:36px;position:relative}.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-live)}.hero-v2 h1{font-size:clamp(34px,5.5vw,56px);letter-spacing:-.035em;line-height:1.08;max-width:760px;margin:0;position:relative}.hero-v2 .lede{font-size:19px;max-width:600px;margin:26px auto 44px;position:relative}.hero-search-trigger{display:flex;align-items:center;gap:14px;width:min(640px,100%);background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;padding:18px 22px;box-shadow:var(--shadow-sm);cursor:pointer;font-family:var(--font-body);position:relative;transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}.hero-search-trigger:hover,.hero-search-trigger:active,.hero-search-trigger:focus{background:var(--surface);color:inherit}.hero-search-trigger:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong));box-shadow:0 6px 16px -8px color-mix(in srgb,var(--primary) 20%,transparent),0 1px 2px rgba(41,32,46,.06)}.hero-search-trigger:active{transform:translateY(0) scale(.995)}.hero-search-trigger:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--shadow-focus)}.hero-search-trigger svg{flex-shrink:0;color:var(--text-muted)}.hero-search-trigger:hover svg{color:var(--primary)}.hst-placeholder{flex:1;text-align:left;font-size:17px;color:var(--text-muted)}.hero-search-trigger kbd{font-family:var(--font-body);font-size:12px;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px;padding:3px 8px;white-space:nowrap}.trust-strip{display:flex;gap:16px 28px;flex-wrap:wrap;justify-content:center;margin-top:52px;font-size:13.5px;font-weight:500;color:var(--text-secondary);position:relative}.trust-strip span{display:flex;align-items:center;gap:7px}.trust-strip svg{color:var(--accent-live)}.home-sec{padding:96px 0}.home-sec .sec-head{text-align:center;margin-bottom:56px}.home-sec .sec-head h2{font-size:clamp(30px,4vw,40px);letter-spacing:-.025em;margin:0;position:relative;display:inline-block}.home-sec .sec-head h2::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-14px;width:56px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--primary),#ff8a5c)}.home-sec .sec-head p{font-size:17px;color:var(--text-secondary);margin:30px auto 0;max-width:520px}.popular-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tool-card-v2{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:30px 28px;text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease)}.tool-card-v2:hover{box-shadow:var(--shadow-md);transform:translateY(-3px) scale(1.01);border-color:var(--border-strong)}.tool-card-v2 .tc-chip,.cat-card .tc-chip{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease)}.tool-card-v2:hover .tc-chip,.cat-card:hover .tc-chip{transform:rotate(-4deg) scale(1.06)}.tool-card-v2 h3{font-size:21px;font-weight:600;letter-spacing:-.015em;margin:0;font-family:var(--font-display)}.tool-card-v2 p{font-size:14.5px;color:var(--text-secondary);line-height:1.6;margin:0}.tc-go{font-size:14px;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:6px;margin-top:auto}.tc-badge{position:absolute;top:20px;right:20px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--radius-full)}.tc-badge.pop{background:var(--primary-bg);color:var(--primary-active)}.tc-badge.new{background:var(--teal-bg);color:var(--teal-text)}.browse-card{background:linear-gradient(135deg,color-mix(in srgb,var(--primary-bg) 40%,var(--surface)),var(--surface));border-style:solid;border-color:var(--border)}.browse-card .tc-chip{background:var(--primary-bg);color:var(--primary)}.browse-card:hover{border-style:solid;border-color:var(--primary)}.cats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.cat-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:28px 24px;text-align:left;text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease)}.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.cat-card .tc-chip{width:46px;height:46px;border-radius:13px;margin-bottom:10px}.cat-card h3{font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0;font-family:var(--font-display)}.cat-card p{font-size:13.5px;color:var(--text-secondary);line-height:1.5;margin:0}.cat-count{font-size:12.5px;font-weight:600;color:var(--primary);margin-top:auto;padding-top:8px}.home-why{background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px;max-width:900px;margin:0 auto}.why-item{text-align:center}.why-chip{width:52px;height:52px;border-radius:15px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:var(--primary);box-shadow:var(--shadow-sm)}.why-item h3{font-size:18px;font-weight:600;margin:0 0 8px;font-family:var(--font-display)}.why-item p{font-size:14.5px;color:var(--text-secondary);margin:0}.home-faq{padding-top:32px}.page-head{padding:24px 0 8px}.page-head h1{margin-bottom:8px}@media (max-width:1024px){.popular-grid{grid-template-columns:repeat(2,1fr)}.cats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.hero-v2{min-height:auto;padding:64px 20px 56px}.hero-badge{margin-bottom:28px;font-size:12px}.hero-v2 .lede{font-size:16px;margin:20px auto 32px}.hero-search-trigger{padding:14px 16px;border-radius:14px;gap:10px}.hst-placeholder{font-size:15px}.hero-search-trigger kbd{display:none}.trust-strip{gap:14px 20px;margin-top:36px;font-size:12.5px}.home-sec{padding:56px 0}.home-sec .sec-head{margin-bottom:36px}.popular-grid{grid-template-columns:1fr;gap:14px}.tool-card-v2{padding:24px 22px}.tool-card-v2 h3{font-size:19px}.cats-grid{grid-template-columns:1fr;gap:14px}.cat-card{padding:24px 22px}.why-grid{gap:28px}}
.cmdk-foot{display:flex;gap:18px;padding:10px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.cmdk-foot kbd{font-family:var(--font-body);font-size:10.5px;color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:1px 5px;margin-right:4px}
.changelog{max-width:720px;margin:24px 0 64px;position:relative;padding-left:28px;border-left:2px solid var(--border)}.cl-entry{position:relative;padding-bottom:40px}.cl-entry::before{content:"";position:absolute;left:-35px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:3px solid var(--bg)}.cl-date{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.cl-entry h2{margin:0 0 10px;font-size:1.3rem}.cl-entry p{color:var(--text-secondary);max-width:620px}.cl-entry kbd{font-size:.8em;background:var(--bg-subtle);border:1px solid var(--border);border-radius:5px;padding:1px 6px}
/* --- P2 motion + a11y polish --- */details.faq-item[open] > p{animation:faqReveal .22s var(--ease)}@keyframes faqReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.btn:active,.tool-card-v2:active,.cat-card:active,.card:active{transform:scale(.985)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;top:-100px;left:12px;z-index:1000;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:10px 16px;font-weight:600;font-size:.9rem;box-shadow:var(--shadow-md);text-decoration:none;transition:top .15s var(--ease)}.skip-link:focus{top:12px}[dir=rtl] .skip-link{left:auto;right:12px}.btn:focus-visible,.card:focus-visible,.tool-card-v2:focus-visible,.cat-card:focus-visible{outline:none;box-shadow:var(--shadow-focus)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}/* --- P2 footer product column --- *//* --- P2 recently added strip (tools page) --- */.recent-strip{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 16px}.recent-chip{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:500;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:8px 16px;text-decoration:none;transition:all .18s var(--ease)}.recent-chip:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-bg);text-decoration:none;transform:translateY(-1px)}.recent-chip .new-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-live);flex-shrink:0}
/* GPU-composited ambient drift (replaces the old per-frame JS loop) */@keyframes blobDriftA{from{translate:0 0}50%{translate:14px -10px}to{translate:-8px 12px}}@keyframes blobDriftB{from{translate:0 0}50%{translate:-16px 12px}to{translate:10px -14px}}@keyframes blobDriftC{from{translate:0 0}50%{translate:9px 13px}to{translate:-12px -8px}}.bg-blobs .blob-1{animation:blobDriftA 46s ease-in-out infinite alternate}.bg-blobs .blob-2{animation:blobDriftB 58s ease-in-out infinite alternate}.bg-blobs .blob-3{animation:blobDriftC 39s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.bg-blobs .blob{animation:none}}
.explain-panel{max-width:720px;margin:56px 0}.explain-panel h2{margin-top:0}.explain-panel p{color:var(--text-secondary);line-height:1.75;max-width:68ch;margin:0 0 16px}.explain-panel p:last-child{margin-bottom:0}
.byline{font-size:.88rem;color:var(--text-muted);margin:-6px 0 28px}

/* Norito GIF: shared frame-strip component (thumbnails + per-frame delay/reorder/remove), used by GIF Maker, GIF Compressor, GIF Resizer, and Add Text to GIF. */
.frame-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;max-height:460px;overflow-y:auto;padding:4px}.frame-strip-undo{flex-basis:100%}.frame-strip-undo-btn{padding:7px 14px;font-size:.82rem}.frame-chip{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:108px;flex-shrink:0}.frame-chip .frame-thumb{width:88px;height:88px;object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border);display:block}.frame-chip .frame-index{font-size:.7rem;color:var(--text-muted)}.frame-chip .frame-delay-label{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--text-secondary);white-space:nowrap}.frame-chip .frame-delay-input{width:50px;font-size:.75rem;padding:2px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text)}.frame-chip .frame-actions{display:flex;gap:4px}.frame-chip .frame-actions button{font-size:.7rem;padding:2px 6px;line-height:1.5;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer}.frame-chip .frame-actions button:disabled{opacity:.35;cursor:default}.frame-chip .frame-remove{color:var(--danger)}
.frame-strip-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);font-size:.82rem;color:var(--text-secondary)}.frame-strip-toolbar label{display:flex;align-items:center;gap:6px}.frame-strip-toolbar input[type=number],.frame-strip-toolbar select{padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.frame-strip-toolbar button{font-size:.78rem;padding:4px 10px}

/* Whole-page drag-and-drop overlay (shared by every single-dropzone tool via wireDragDrop() in js/utils.js) */
.fullpage-drop-overlay{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(17,10,14,.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.fullpage-drop-overlay.active{display:flex}
.fullpage-drop-overlay-inner{display:flex;flex-direction:column;align-items:center;gap:12px;padding:56px 72px;border:2px solid var(--primary);border-radius:var(--radius-lg);background:var(--primary-bg);color:var(--text);text-align:center;font-size:1.15rem;font-weight:700;pointer-events:none}
.fullpage-drop-overlay-inner svg{width:44px;height:44px;color:var(--primary)}
