1 <!DOCTYPE html> <html lang="en"> <head> <meta content="text/html; charset=UTF-8" http-equiv=Content-Type> <meta name=viewport content="width=device-width, initial-scale=1"> <title>About Us & Contact - MiniWebtool.com</title>
1<script> var langcode = ''; </script>
vendor: 65 bytes, lines 1-2
1 2<script async src="https://www.googletagmanager.com/gtag/js?id=
2UA-104903307-1
vendor: 12 bytes, line 2
2"></script>
3<script> 4
vendor: 134 bytes, lines 4-8
4window.dataLayer = window.dataLayer || []; 5 function gtag(){dataLayer.push(arguments);} 6 gtag('js', new Date()); 7 8 gtag('config', '
8UA-104903307-1
vendor: 4 bytes, line 8
8');
9</script>
9 10 11
vendor: 13,832 bytes, lines 11-16
11<script> 12(function () { 13 if (!('PerformanceObserver' in window) || window.top !== window.self || window.mwtAnalyticsDisabled || navigator.webdriver) return; 14 if (/bot|crawl|spider|slurp|bingpreview|headlesschrome|lighthouse|gtmetrix|pingdom|pagespeed|chrome-lighthouse/i.test(navigator.userAgent)) return; 15 // GoogleChrome/web-vitals 6.2.1, Apache-2.0. License: static/js/web-vitals-LICENSE.txt 16var webVitals=function(t){"use strict";class n{t;o=0;i=[];l(t){if(t.hadRecentInput)return;const n=this.i[0],e=this.i.at(-1);this.o&&n&&e&&t.startTime-e.startTime<1e3&&t.startTime-n.startTime<5e3?(this.o+=t.value,this.i.push(t)):(this.o=t.value,this.i=[t]),this.t?.(t)}}const e=()=>{const t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},o=t=>{if("loading"===document.readyState)return"loading";const n=e();if(n){if(t<n.domInteractive)return"loading";if(0===n.domContentLoadedEventStart||t<n.domContentLoadedEventStart)return"dom-interactive";if(0===n.domComplete||t<n.domComplete)return"dom-content-loaded"}return"complete"},i=t=>{const n=t.nodeName;return 1===t.nodeType?n.toLowerCase():n.toUpperCase().replace(/^#/,"")},a=t=>{let n="";try{for(;9!==t?.nodeType;){const e=t,o=e.id?"#"+e.id:[i(e),...Array.from(e.classList??[]).sort()].join(".");if(n.length+o.length>99)return n||o;if(n=n?o+">"+n:o,e.id)break;t=e.parentNode}}catch{}return n},r=new WeakMap;function s(t,n){let e=r.get(n);return e||(e=new WeakMap,r.set(n,e)),e.get(t)||e.set(t,new n),e.get(t)}let c=-1;const f=()=>c,l=t=>{addEventListener("pageshow",n=>{n.persisted&&(c=n.timeStamp,t(n))},!0)},u=(t,n,e,o)=>{let i,a;return r=>{n.value>=0&&(r||o)&&(a=n.value-(i??0),(a||void 0===i)&&(i=n.value,n.delta=a,n.rating=((t,n)=>t>n[1]?"poor":t>n[0]?"needs-improvement":"good")(n.value,e),t(n)))}},d=t=>{requestAnimationFrame(()=>requestAnimationFrame(()=>t()))},h=()=>e()?.activationStart??0;let g=-1;const v=new Set,p=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,m=t=>{if("hidden"===document.visibilityState){if("visibilitychange"===t.type)for(const t of v)t();isFinite(g)||(g="visibilitychange"===t.type?t.timeStamp:0,removeEventListener("prerenderingchange",m,!0))}},y=(t=!1)=>{if(t&&(g=1/0),g<0){const t=h(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(n=>"hidden"===n.name&&n.startTime>=t)?.startTime;g=n??p(),addEventListener("visibilitychange",m,!0),addEventListener("prerenderingchange",m,!0),l(()=>{setTimeout(()=>{g=p()})})}return{get firstHiddenTime(){return g},onHidden(t){v.add(t)}}},b=(t,n=-1,o,i=0,a,r,s)=>{const c=e(),l=c?.navigationId||0;let u="navigate";o?u=o:f()>=0?u="back-forward-cache":c&&(document.prerendering||h()>0?u="prerender":document.wasDiscarded?u="restore":c.type&&(u=c.type.replace(/_/g,"-")));return{name:t,value:n,rating:"good",delta:0,entries:[],id:`v6-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:u,navigationId:i||l,navigationInteractionId:a,navigationURL:r||c?.name,navigationStartTime:s||0}},M=(t,n,e={})=>{try{const o=t.filter(t=>PerformanceObserver.supportedEntryTypes.includes(t));if(o.length>0){const t=new PerformanceObserver(t=>{queueMicrotask(()=>{const e=t.getEntries();o.length>1&&e.sort((t,n)=>t.startTime+t.duration-(n.startTime+n.duration)),n(e)})});for(const n of o)t.observe({type:n,buffered:!0,...e});return t}}catch{}},T=t=>globalThis.PerformanceObserver?.supportedEntryTypes?.includes("soft-navigation")&&"function"==typeof globalThis.PerformanceSoftNavigation?.prototype?.getLargestInteractionContentfulPaint&&t&&t.reportSoftNavs,E=(t,n)=>{if(t.set(n.navigationId,n),t.size>2){const n=t.keys().next().value;void 0!==n&&t.delete(n)}},D=t=>{let n=!1;return()=>{n||(t(),n=!0)}};class w{u}const S=t=>{document.prerendering?addEventListener("prerenderingchange",t,!0):t()},k=[1800,3e3],L=(t,n={})=>{const e=T(n);S(()=>{const o=s(n,w),i=y();let a,r=b("FCP");const c=M(["paint"],t=>{for(const n of t)"first-contentful-paint"===n.name&&(c.disconnect(),n.startTime<i.firstHiddenTime&&(r.value=Math.max(n.startTime-h(),0),r.entries.push(n),r.navigationId=n.navigationId||r.navigationId,a(!0)))});if(c&&(a=u(t,r,k,n.reportAllChanges),l(e=>{r=b("FCP",-1,"back-forward-cache",r.navigationId,r.navigationInteractionId,r.navigationURL,f()),a=u(t,r,k,n.reportAllChanges),d(()=>{r.value=performance.now()-e.timeStamp,a(!0)})})),e){M(["soft-navigation"],e=>{e.forEach(e=>{o.u&&e.navigationId&&E(o.u,e);const i=Math.max((e.presentationTime||e.paintTime||0)-e.startTime,0);r=b("FCP",i,"soft-navigation",e.navigationId,e.interactionId,e.name,e.startTime),a=u(t,r,k,n.reportAllChanges),a(!0)})},n)}})},P=[.1,.25],F=t=>t.find(t=>1===t.node?.nodeType)||t[0];let _=0,C=1/0,I=0;const B=t=>{for(const n of t)n.interactionId&&(C=Math.min(C,n.interactionId),I=Math.max(I,n.interactionId),_=I?(I-C)/7+1:0)};let O;const j=()=>O?_:performance.interactionCount??0,A=()=>{"interactionCount"in performance||O||(O=M(["event"],B,{durationThreshold:0}))};class N{h=0;v=[];p=new Map;m;M;T(){return j()-this.h}D(){this.h=j(),this.v.length=0,this.p.clear()}S(t){const n=this.T(),e=Math.min(this.v.length-1,Math.floor(n/50));return!n||-1!==e||"soft-navigation"!==t&&"back-forward-cache"!==t?this.v[e]:{k:8,id:-1,entries:[]}}l(t){if(this.m?.(t),!t.interactionId)return;const n=this.v.at(-1);let e=this.p.get(t.interactionId);if(e||this.v.length<10||t.duration>n.k){if(e?t.duration>e.k?(e.entries=[t],e.k=t.duration):t.duration===e.k&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(e={id:t.interactionId,entries:[t],k:t.duration},this.p.set(e.id,e),this.v.push(e)),this.v.sort((t,n)=>n.k-t.k),this.v.length>10){const t=this.v.splice(10);for(const n of t)this.p.delete(n.id)}this.M?.(e)}}}const q=t=>{const n="requestIdleCallback"in globalThis?1e3:0,e=globalThis.requestIdleCallback||setTimeout,o=globalThis.cancelIdleCallback||clearTimeout;if("hidden"===document.visibilityState)t();else{const i=D(t);let a=-1;const r=()=>{o(a),i()};addEventListener("visibilitychange",r,{once:!0,capture:!0}),a=e(()=>{removeEventListener("visibilitychange",r,{capture:!0}),i()},{timeout:n})}},W=[200,500];class R{m;u;l(t){this.m?.(t)}}const U=[2500,4e3];let V=50;const $=[];M(["resource"],t=>{for(const n of t)$.push(n),$.length>V&&$.shift()});const x=[800,1800],H=t=>{document.prerendering?S(()=>H(t)):"complete"!==document.readyState?addEventListener("load",()=>H(t),!0):setTimeout(t)};return t.CLSThresholds=P,t.FCPThresholds=k,t.INPThresholds=W,t.LCPThresholds=U,t.TTFBThresholds=x,t.onCLS=(t,e={})=>{const i=s(e=Object.assign({},e),n),r=new WeakMap;i.t=t=>{if(t?.sources?.length){const n=F(t.sources),o=n?.node;if(o){const t=e.generateTarget?.(o)??a(o);r.set(n,t)}}};((t,e={})=>{const o=y();L(D(()=>{let i,a=b("CLS",0);const r=s(e,n),c=(n,o,s,c,f)=>{a=b("CLS",0,n,o,s,c,f),r.o=0,i=u(t,a,P,e.reportAllChanges)},h=(t=!1)=>{r.o>a.value&&(a.value=r.o,a.entries=r.i),i(t)},g=t=>{h(!0),c("soft-navigation",t.navigationId,t.interactionId,t.name,t.startTime)},v=t=>{for(const n of t)"soft-navigation"!==n.entryType?r.l(n):g(n);h()},p=["layout-shift"];T(e)&&p.push("soft-navigation");const m=M(p,v);m&&(i=u(t,a,P,e.reportAllChanges),o.onHidden(()=>{v(m.takeRecords()),i(!0)}),l(()=>{c("back-forward-cache",a.navigationId,a.navigationInteractionId,a.navigationURL,f()),d(i)}),setTimeout(i))}))})(n=>{t((t=>{let n={};if(t.entries.length){const e=t.entries.reduce((t,n)=>t.value>n.value?t:n);if(e?.sources?.length){const t=F(e.sources);t&&(n={largestShiftTarget:r.get(t),largestShiftTime:e.startTime,largestShiftValue:e.value,largestShiftSource:t,largestShiftEntry:e,loadState:o(e.startTime)})}}return Object.assign(t,{attribution:n})})(n))},e)},t.onFCP=(t,n={})=>{const i=s(n=Object.assign({},n),w);T(n)&&(i.u=new Map);L(n=>{t((t=>{let n={timeToFirstByte:0,firstByteToFCP:t.value,loadState:o(f())};if("soft-navigation"!==t.navigationType){if(t.entries.length){const i=e(),a=t.entries.at(-1);if(i){const e=i.responseStart,r=i.activationStart||0,s=Math.max(0,e-r);n={timeToFirstByte:s,firstByteToFCP:t.value-s,loadState:o(t.entries[0].startTime),navigationEntry:i,fcpEntry:a}}}}else{const e=i.u?.get(t.navigationId);e&&(n={timeToFirstByte:0,firstByteToFCP:t.value,loadState:"complete",navigationEntry:e})}return Object.assign(t,{attribution:n})})(n))},n)},t.onINP=(t,n={})=>{const e=s(n=Object.assign({},n),N);let i=[],r=[],c=0;const d=new WeakMap,h=new WeakMap;let g=!1;const v=()=>{g||(q(p),g=!0)},p=()=>{const t=new Set(e.v.map(t=>d.get(t.entries[0]))),n=r.length-10;r=r.filter((e,o)=>o>=n||t.has(e));const o=new Set;for(const t of r){const n=m(t.startTime,t.processingEnd);for(const t of n)o.add(t)}i=i.filter(t=>t.startTime>c||o.has(t)),g=!1};e.m=t=>{const e=t.startTime+t.duration;let o;c=Math.max(c,t.processingEnd);for(let i=r.length-1;i>=0;i--){const a=r[i];if(Math.abs(e-a.renderTime)<=8){o=a,o.startTime=Math.min(t.startTime,o.startTime),o.processingStart=Math.min(t.processingStart,o.processingStart),o.processingEnd=Math.max(t.processingEnd,o.processingEnd),n.includeProcessedEventEntries&&o.entries.push(t);break}}o||(o={startTime:t.startTime,processingStart:t.processingStart,processingEnd:t.processingEnd,renderTime:e,entries:n.includeProcessedEventEntries?[t]:[]},r.push(o)),t.interactionId&&d.set(t,o),v()},e.M=t=>{if(!h.get(t)){const e=t.entries.find(t=>t.target)?.target;if(e){const o=n.generateTarget?.(e)??a(e);h.set(t,o)}else{const n=t.entries.find(t=>t.targetSelector)?.targetSelector;n&&h.set(t,n)}}};const m=(t,n)=>{const e=[];for(const o of i)if(!(o.startTime+o.duration<t)){if(o.startTime>n)break;e.push(o)}return e},E=t=>{if(0===t.entries.length){const n=t.navigationStartTime||0,e={processedEventEntries:[],longAnimationFrameEntries:[],inputDelay:0,processingDuration:0,presentationDelay:t.value,loadState:o(n)};return Object.assign(t,{attribution:e})}const n=t.entries[0],i=d.get(n),a=Math.max(i.processingStart,n.startTime),r=Math.max(n.startTime+n.duration,a),s=Math.min(i.processingEnd,r),c=i.entries.sort((t,n)=>t.processingStart-n.processingStart),f=m(n.startTime,s),l=e.p.get(n.interactionId),u={interactionTarget:h.get(l),interactionType:n.name.startsWith("key")?"keyboard":"pointer",interactionTime:n.startTime,nextPaintTime:r,processedEventEntries:c,longAnimationFrameEntries:f,inputDelay:a-n.startTime,processingDuration:s-a,presentationDelay:r-s,loadState:o(n.startTime),longestScript:void 0,totalScriptDuration:void 0,totalStyleAndLayoutDuration:void 0,totalPaintDuration:void 0,totalUnattributedDuration:void 0};return(t=>{const n=t.interactionTime,e=t.nextPaintTime;if(!t.longAnimationFrameEntries?.length||!n||!e)return;const o=t.inputDelay,i=t.processingDuration;let a,r,s=0,c=0,f=0,l=0;for(const e of t.longAnimationFrameEntries){c=c+e.startTime+e.duration-e.styleAndLayoutStart;for(const t of e.scripts){const e=t.startTime+t.duration;if(e<n)continue;const f=e-Math.max(n,t.startTime),u=t.duration?f/t.duration*t.forcedStyleAndLayoutDuration:0;s+=f-u,c+=u,f>l&&(r=t.startTime<n+o?"input-delay":t.startTime>=n+o+i?"presentation-delay":"processing-duration",a=t,l=f)}}const u=t.longAnimationFrameEntries.at(-1),d=u?u.startTime+u.duration:0;d>=n+o+i&&(f=e-d),a&&r&&(t.longestScript={entry:a,subpart:r,intersectingDuration:l}),t.totalScriptDuration=s,t.totalStyleAndLayoutDuration=c,t.totalPaintDuration=f,t.totalUnattributedDuration=e-n-s-c-f})(u),Object.assign(t,{attribution:u})};M(["long-animation-frame"],t=>{i=i.concat(t),v()},n),((t,n={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const e=y();S(()=>{A();let o,i=b("INP");const a=s(n,N),r=(e,r,s,c,f)=>{a.D(),i=b("INP",-1,e,r,s,c,f),o=u(t,i,W,n.reportAllChanges)},c=()=>{const t=a.S(i.navigationType);t&&t.k!==i.value&&(i.value=t.k,i.entries=t.entries,o())},d=t=>{c(),o(!0),r("soft-navigation",t.navigationId,t.interactionId,t.name,t.startTime)},h=(t,n=!1)=>{q(()=>{for(const n of t)"soft-navigation"!==n.entryType?a.l(n):d(n);c(),n&&o(!0)})},g=["event","first-input"];T(n)&&g.push("soft-navigation");const v=M(g,h,{...n,durationThreshold:n.durationThreshold??40});o=u(t,i,W,n.reportAllChanges),v&&(e.onHidden(()=>{h(v.takeRecords(),!0)}),l(()=>{r("back-forward-cache",i.navigationId,i.navigationInteractionId,i.navigationURL,f())}))})})(n=>{t(E(n))},n)},t.onLCP=(t,n={})=>{null!=(n=Object.assign({},n)).resourceBufferSize&&(V=n.resourceBufferSize);const o=s(n,R),i=new WeakMap;T(n)&&(o.u=new Map),o.m=t=>{const e=t.element;if(e){const o=n.generateTarget?.(e)??a(e);i.set(t,o)}else t.id&&i.set(t,`#${t.id}`)};((t,n={})=>{let e=!1;const o=T(n);S(()=>{let i,a=y(),r=b("LCP");const c=s(n,R),g=(o,s,c,f,l)=>{r=b("LCP",-1,o,s,c,f,l),i=u(t,r,U,n.reportAllChanges),e=!1,"soft-navigation"===o&&(a=y(!0))},v=t=>{c.u&&t.navigationId&&E(c.u,t),e||i(!0),g("soft-navigation",t.navigationId,t.interactionId,t.name,t.startTime);const n=t.getLargestInteractionContentfulPaint?.();n&&p([n])},p=t=>{n.reportAllChanges||o||(t=t.slice(-1));for(const n of t){if(!n)continue;if("soft-navigation"===n.entryType){v(n);continue}let t=0,e=[],o=n.startTime;if("largest-contentful-paint"===n.entryType)t=Math.max(n.startTime-h(),0),c.l(n),e=[n];else if("interaction-contentful-paint"===n.entryType){const i=n;if(!r.navigationId)continue;if("interactionId"in i&&i.interactionId!=r.navigationInteractionId)continue;o=i.largestContentfulPaint?.renderTime||0,t=Math.max(o-n.startTime,0),i.largestContentfulPaint&&(c.l(i.largestContentfulPaint),e=[i.largestContentfulPaint])}o<a.firstHiddenTime&&(r.value=t,r.entries=e,i())}},m=["largest-contentful-paint"];o&&m.push("interaction-contentful-paint","soft-navigation");const T=M(m,p);if(T){i=u(t,r,U,n.reportAllChanges);const a=["keydown","click","visibilitychange"],s=t=>{if(t.isTrusted&&!e){const t=r.id;q(()=>{if(!e){if(!o){T.disconnect();for(const t of a)removeEventListener(t,s,{capture:!0})}t===r.id&&(e=!0,i(!0))}})}};
16for(const t of a)addEventListener(t,s,{capture:!0});l(o=>{g("back-forward-cache",r.navigationId,r.navigationInteractionId,r.navigationURL,f()),i=u(t,r,U,n.reportAllChanges),d(()=>{r.value=performance.now()-o.timeStamp,e=!0,i(!0)})})}})})(n=>{t((t=>{let n={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:t.value};if(t.entries.length){const a=t.entries.at(-1),r=a.url&&($.findLast(t=>t.name===a.url)||performance.getEntriesByType("resource").findLast(t=>t.name===a.url));let s;n.target=i.get(a),n.lcpEntry=a,a.url&&(n.url=a.url),r&&(n.lcpResourceEntry=r);let c=0,f=0;if("soft-navigation"!==t.navigationType?(s=e(),c=s?.activationStart??0,f=s?.responseStart??0):(c=t.navigationStartTime||0,s=o.u?.get(t.navigationId)),s){const e=Math.max(0,f-c),o=Math.max(e,r?(r.requestStart||r.startTime)-c:0),i=Math.min(t.value,Math.max(o,r?r.responseEnd-c:0));n={...n,timeToFirstByte:e,resourceLoadDelay:o-e,resourceLoadDuration:i-o,elementRenderDelay:t.value-i,navigationEntry:s}}}return Object.assign(t,{attribution:n})})(n))},n)},t.onTTFB=(t,n={})=>{((t,n={})=>{const o=T(n);let i=b("TTFB"),a=u(t,i,x,n.reportAllChanges);H(()=>{const r=e();if(r){const e=r.responseStart;i.value=Math.max(e-h(),0),i.entries=[r],a(!0),l(()=>{i=b("TTFB",0,"back-forward-cache",i.navigationId,i.navigationInteractionId,i.navigationURL,f()),a=u(t,i,x,n.reportAllChanges),a(!0)}),o&&M(["soft-navigation"],e=>{e.forEach(e=>{e.navigationId&&(i=b("TTFB",0,"soft-navigation",e.navigationId,e.interactionId,e.name,e.startTime),i.entries=[e],a=u(t,i,x,n.reportAllChanges),a(!0))})},n)}})})(n=>{t((t=>{const n=t.entries[0];let e={waitingDuration:0,cacheDuration:0,dnsDuration:0,connectionDuration:0,requestDuration:0,navigationEntry:n};if(t.entries.length&&n instanceof PerformanceNavigationTiming){const o=n.activationStart||0,i=Math.max((n.workerStart||n.fetchStart||0)-o,0),a=Math.max(n.domainLookupStart-o,0),r=Math.max(n.connectStart-o,0),s=Math.max(n.connectEnd-o,0);e={waitingDuration:i,cacheDuration:a-i,dnsDuration:r-a,connectionDuration:s-r,requestDuration:t.value-s,navigationEntry:n}}return Object.assign(t,{attribution:e})})(n))},n)},t}({}); 17 18 19function safeTarget(node) { 20 if (!node || node.nodeType !== 1) return '(unknown)'; 21 var parts = [], depth = 0; 22 while (node && node.nodeType === 1 && depth++ < 4) { 23 var part = node.tagName.toLowerCase(); 24 if (node.id) { parts.unshift(part + '#' + node.id); break; } 25 if (typeof node.className === 'string' && node.className.trim()) part += '.' + node.className.trim().split(/\s+/).slice(0, 2).join('.'); 26 parts.unshift(part); 27 node = node.parentElement; 28 } 29 return parts.join('>').slice(0, 100); 30} 31function report(metric) { 32 if (typeof window.gtag !== 'function' || window.mwtAnalyticsDisabled) return; 33 var a = metric.attribution || {}; 34 var inp = metric.name === 'INP'; 35 var script = a.longestScript && a.longestScript.entry; 36 var source = script && (script.sourceURL || script.invoker) || '(none)'; 37 source = source.replace(/^https?:\/\//, '').split(/[?#]/)[0].slice(0, 100); 38 function ms(n) { return Math.max(0, Math.round(n || 0)); } 39 var fields = { 40 metric_name: metric.name, 41 metric_unit: inp ? 'ms' : 'x1000', 42 metric_value: Math.round(metric.value * (inp ? 1 : 1000)), 43 metric_rating: metric.rating, 44 metric_id: metric.id, 45 vitals_version: 'web-vitals-6.2.1-inp1', 46 vitals_path: location.pathname.slice(0, 100), 47 vitals_lang: (document.documentElement.lang || 'en').slice(0, 12), 48 vitals_target: (inp ? a.interactionTarget || '(unknown)' : a.largestShiftTarget || '(none)').slice(0, 100), 49 vitals_detail: inp ? (a.interactionType || 'interaction') + '|delay' + ms(a.inputDelay) + '|proc' + ms(a.processingDuration) + '|paint' + ms(a.presentationDelay) : '', 50 vitals_script: inp ? source : '(none)', 51 vitals_count: inp ? (performance.interactionCount || 0) : 0, 52 non_interaction: true, 53 page_location: location.origin + location.pathname, 54 page_referrer: '', 55 transport_type: 'beacon' 56 }; 57 if (inp) { 58 fields.inp_input_delay = ms(a.inputDelay); 59 fields.inp_processing_duration = ms(a.processingDuration); 60 fields.inp_presentation_delay = ms(a.presentationDelay); 61 fields.inp_load_state = a.loadState; 62 fields.inp_script_phase = a.longestScript ? a.longestScript.subpart : '(none)'; 63 } 64 try { window.gtag('event', 'web_vitals', fields); } catch (e) {} 65}
66webVitals.onINP(report, { generateTarget: safeTarget }); 67webVitals.onCLS(report, { generateTarget: safeTarget }); 68 69})(); 70</script>
70 71 72 <meta property="og:image" content="https://images.miniwebtool.com/about-contact.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="543"> <meta name="twitter:image" content="https://images.miniwebtool.com/about-contact-x.png"> <meta name="twitter:image:width" content="600"> <meta name="twitter:image:height" content="600"> 73 <link rel="icon" type="image/svg+xml" href="/favicon.svg"> <style>.w3-third{float:left;width:100%}@media (min-width:994px){.w3-third{width:33.33333%}}.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}.w3-row-padding,.w3-row-padding>.w3-third,{padding:0 8px}.bigbtn {border: 1px solid #38444d!important;background-color: #38444d!important;color: #ddd !important;}.nk{ display: inline-block; position: relative; vertical-align: middle; letter-spacing: 0.001em; text-align: center;}.nk > span { display: block; padding: 0.1em;}.frac { display: inline-block; position: relative; vertical-align: middle; letter-spacing: 0.001em; text-align: center;}.frac > span { display: block; padding: 0.1em;}.frac span.bottom { border-top: thin solid black;}.frac span.symbol { display: none;}#surveyshare-buttons a {color: white!important;} #share-result a {color: white!important;} .w3-dropdown-content { opacity: 0; visibility: hidden; transform: translateY(-10px); transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s; } #topbar { margin: 0; padding: 6px 0; background: #ffffff; position: fixed; top: 100px; left: 0; right: 0; z-index: 2147483647; } .w3-dropdown-hover:hover .w3-dropdown-content { opacity: 1; visibility: visible; transform: translateY(0); display:block!important; } #firstbar{height:37px;} #secondbar{height:50px;} #videoad{height:0px;display:none;} .cimg { margin-left:auto; margin-right:auto; display: block; max-width: 800px; width: 100%; height: auto; } .w3-animate-left { animation: animateleft 0.4s; } .svg-inline{display:inline-block;vertical-align:middle}.svg-ml-1{margin-left:0.25rem}.svg-mr-1{margin-right:0.25rem}.w3-button svg,.search-icon svg{width:1em;height:1em;vertical-align:middle;fill:currentColor}.maincontent { background-color: white; padding: 20px; } #re1{width:100%;overflow-x:hidden;}#calculatorresult{max-width:100%;overflow:hidden;overflow-wrap:break-word;word-break:break-word;}#calculatorresult>*{max-width:100%;min-width:0;overflow:hidden;}#calculatorresult *{min-width:0;box-sizing:border-box;}#sidebar1 {width: 95%; margin-left:auto;margin-right:auto; display:block; position: relative ; padding: 10px; overflow:hidden;} #right { display: none ; } #dSpace { background-color: #ffffff; height: 100px; width: 100%; z-index: 999; position: fixed; top: 0; } .desktop-90{ height:0px; } .desktop-300{ height:0px; } .desktop-250{ height:0px; } .desktop-600{ height:0px; } .mobile-120 { height:100px; } .mobile-350 { height:600px; }/*mwt-mobile-compact*/@media (max-width:993px){div#bc.mobileonly{min-height:0;padding:10px 0 0;margin:0 0 4px;background:none;border:0}#bc .f6{font-size:0;line-height:1}#bc a{display:none}#bc a:last-child{display:inline-block;font:600 12px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:#5b5fc7}#bc a:last-child::before{content:"â¹Â "}body.darkpagetheme #bc a:last-child{color:#a5b4fc}.bc-foot{padding:12px 0;font-size:.9rem;color:#666}#secondbar .search-box{height:40px!important;margin:0!important}#firstbar{padding:2px 12px!important}#secondbar{padding:5px 12px!important}div.mwt-tool-trust{flex-wrap:nowrap!important;gap:6px 16px;margin:-6px 0 12px;font-size:.8rem}.mwt-tool-trust:not(.mwt-tool-trust-dated) .mwt-tool-trust-item:nth-child(3){display:none}.mwt-tool-trust-dated .mwt-tool-trust-item:nth-child(1){display:none}h1#calculatorstart{position:relative}h1#calculatorstart .mwt-featured-badge{position:static}h1#calculatorstart .mwt-featured-tip{left:0;right:0;transform:translate(0,-3px);width:auto;max-width:none;text-align:center}h1#calculatorstart .mwt-featured-badge:hover .mwt-featured-tip,h1#calculatorstart .mwt-featured-badge:focus .mwt-featured-tip{transform:translate(0,0)}}@media (max-width:374px){div.mwt-tool-trust{font-size:.75rem;gap:6px 10px}}@media (max-width:599px){.mobile-350{height:350px}} .mwt-adslot { height:300px; } #mwt-minitop-slot #mwt-minitop-fb, #mwt-minitop-slot .desktop-300, #mwt-minitop-slot .mobile-350 { height:100%; } html,body { font-family: "Segoe UI",Arial,sans-serif; font-size: 16px; line-height: 1.5 } h1 { font-size: 1.5rem!important; margin-block-start: 0.67em; margin-block-end: 0.67em; margin-inline-start: 0; margin-inline-end: 0; font-weight: bold; unicode-bidi: isolate; } @media screen and (max-width: 993px) { .main { margin-left: auto; margin-right: auto; width: 95%; margin-bottom: 20px; } #bc { margin: 0 0 1.2em 0; padding: 6px 0; background: #eee; border-bottom: 1px solid #e5e5e5; min-height: 66px; display: flex; align-items: center; justify-content: flex-start; } .responsive-iframe { position: absolute; top: 0; width: 100%; } .w3-hide-small { display: none !important; } #surveystepform { margin: 0 auto; width: 96%; padding: 5px; } #sharearea button{width:100%;} .content-section { width: 100%; margin-top: 10px; } body {margin-top: 199px!important;background-color: #ffffff;} } @media (min-width:994px) { html,body,button { font-size: 20px; } .ftmargin { margin-right: 355px; }#firstbar{height:62px;} #secondbar{height:72px;}#dSpace { height: 0px; } #topbar{top:0;position:relative;} #bc{height:0px;} .desktop-90{ min-height:90px; height:auto; } .desktop-300{ height:300px; } .mwt-adslot{ height:300px; } .desktop-250{ min-height:250px; height:auto; } .desktop-600{ min-height:600px; height:auto; } .mobile-350 { height: 0px; } .mobile-120 { height: 0px; } .mobileonly { display: none!important;} .category-menu { display: none; } .menu-icon { display: block; } } @media (min-width:1359px) { .ftmargin { margin-left: 270px; margin-right: 355px; } #videoad{height:271px;width:401px;display:block;} .main { margin-left: 260px; margin-right: 342px; padding-left: 20px; padding-right: 20px; padding: 20px; } #right { width: 342px; position: absolute; right: 0; top: 146px; display:block; } #sidebar { width: 260px; position: fixed; left: 0; top: 146px; bottom: 0; overflow-y: auto; } } @media (max-width: 993px) { .desktoponly { display: none!important; } #secondbar .flex-center{flex:1;margin-right:10px;} .category-menu { display: none; flex-direction: column; background-color: #f9f9f9; position: absolute; top: 60px; right: 0; width: 100%; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .category-menu.show { display: flex; } .menu-icon { display: block; } .menu-icon { display: block; } } @media screen and (min-width: 1361px) { #sidebar1 { width: 260px; position: fixed; left: 0; top: 134px; bottom: 0; overflow-y: auto;padding-bottom:250px; } }
73 @media screen and (min-width: 1111px) and (max-width: 1360px) { 74 .mwt-ext-link { display: none !important; } .main { margin-left: 0px; margin-right: 342px; padding-left: 20px; padding-right: 20px; padding: 20px; } #right { width: 342px; position: absolute; right: 0; top: 134px; display:block; } #sidebar1{display:none!important;} } @media screen and (max-width: 1110px) { #previewcontainer { width: 100% !important; } .modal-container { width: 100% !important; } }#h,body{margin:0}#i1n{margin-right:6px}.dt td,.dt th,.r1,.r3{word-break:break-word}#navbutton a,.shareresult,.surveyclose:focus,.surveyclose:hover,.surveyshareresult,.w3-btn,.w3-button,.z3 a,a,a:hover{text-decoration:none}.sliderimg{-webkit-appearance:none;width:200px;height:15px;background:#d3d3d3;outline:0;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.sliderimg:hover,.surveyslider:hover,.surveystep.activesurveystep{opacity:1}.sliderimg::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;background:#04aa6d;cursor:pointer}.sliderimg::-moz-range-thumb{width:25px;height:25px;background:#04aa6d;cursor:pointer}#imgfold{width:auto;height:300px;overflow-y:auto;margin-left:20px;opacity:.5}#downloadimg,:disabled *{pointer-events:none}html{border-bottom:1px dotted #ccc;margin-bottom:4px;box-sizing:border-box;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow-x:hidden}.g{letter-spacing:-.31em;word-spacing:-0.43em}.u{display:inline-block;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top}.featured-badge,.no-wrap,.search-box,.w3-btn,.w3-button,img{vertical-align:middle}.b,b{font-weight:600}.f6{font-size:1.1rem;}#h{padding:6px 0;background:#1d2a35}#f{margin:7em 0 1em;text-align:center;}#sidebar .w3-button{display:block;text-align:left;margin-left:0;font-size:18px}.featured-badge{background-color:gold;padding:2px 8px;border-radius:3px;font-size:.8em;margin-left:10px}hr,img{border:0}.mwt-featured-tool h1.print::after{content:"Popular";display:inline-block;background-color:gold;color:#111;padding:2px 8px;border-radius:3px;font-size:.5em;line-height:1.4;vertical-align:middle;margin-left:10px;white-space:nowrap;font-weight:600}.custom-wrap { white-space: normal!important; word-wrap: break-word; max-width: 100%;text-wrap: balance; }.badgebtn { position: absolute; top: -8px; right: -10px; background-color: #ffc107; color: black; padding: 2px 6px; border-radius: 12px; font-size: 10px; font-weight: bold; box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); white-space: nowrap; } .badge-new { background-color: #007bff; color: #ffffff; } .badge-featured { background-color: #ff5722; color: #ffffff; } .button-with-badge { position: relative; display: inline-block; margin: 10px; max-width: 100%; word-wrap: break-word; white-space: normal; }.custom-margin { margin: 5px 10px; }.custom-submenu{width:auto;max-width:100%;white-space:nowrap}h1,h2{font-weight:700!important;font-size: 1.5rem;}#i1n{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAAgCAIAAAA0WMUwAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAC19JREFUeJztm/t7FOUVx/0XSlsv1aeP96ooxSIqVAGtIrVqtdVqa2IFodxaDS0YaIvVIgKRGkBLyiWx1AZKiCGQQBICMRAghFx2c4MkJJtNsvf7/TI7M9vz7tnMzM5lO4nySOieZ37YPe8777w772fO+Z53kms2trx6WY94xiasXZOBI2NKloEjY4qmHo6sjzQLt2gXw5GvWbSpJSsDx1VvauEo6MgZ8l2wBPVwmAIDxT3rMnBc9aYWjuLedWyc5U6r1hdl4LjqTRGOCt32dnv95rb5+HVv7/q4AI4a/afo39SS3WAsrdLvVko0X+Nvy9iXNHk4yvrzo3QYmjsdDdu0yyCJ9LlbhacZfH2llz7apl16ylgKESXGRCt1BZtasy8rHEvmW17+qXHgEjW+0w/s88Hp//jE/RVOaUzmWdlq/0ld5KT165pAenO8fMo6s4pqcXIeGTggZiAZaAHKy7C07HABysPlGuDjpKHkssIxfbL+5msHtG2R8Z2en+eC09/OseHXSK3Z+I39cLD+mLhrhDF+qwSarNOPSseJnnfgibQ+MKYJ2Oceh7NCB4bUdA4UXvJt6Ipd8o3pEl/GrA8cgelFT/HsysDRYa8f3+jGQP8EihzABK5x+KhR1BMebmyCg7GERa3+/AvgN3/v0FgnMCY44CEmc6sWz+3ymSo4QGdANhnr0MO+iwUdKyaW5sDV8v5JI/L7PugEv2UauVmhUvFaOn5+Evzu5U3ju9zEhgMO0BmQTYRnMixjDuiazEfOmsp1ng6aSQnFkFN2db6tXpC6XQxkh1CQFfnDIVbTGhnUUbR8HvsfFovFuzqifT0UjKOmv/e9drgdtkdrRH77j0/gKhIIVrSkXoM1XncA/MF9g9IBaUOI0rritPzV7U8dF9LGuKJUqxNSmGxnlXCw7sQgYRX3i2JgboxNMSmrhaO4532hzgAJUjeyd6tm8cZESfK3tgVHdDuClDAdshW6gjRw5CyzQkjv0Eb6+6hXXzRB7ofjthsGclfYEBGjIbZ8oeXW6wew6ZFpQ0N6sRSQppXDZX7wbPnQ
74BTCBpLj3Vh2efseNA5WHxIJAKkgjJ0ZlhzvK90sIDsuUCrjj5MO0I8JBoufs0nTDBmn3786bbzuYTEbXHQBxRw8HRRPg4KB1fsdLJ5Odv13ifKWB9fI/CmYFutV0YykRPTOr4DMevs3dwtECO/ss369MDjKJIB5ttMflLHbBa593Ai6Enc13H/Kt74xLAE4PR1ZBZ05x7zqoWoW1CcQMIEO66vt7N1E0j6EpMLCvdwPUNYXduXmCsgVbH3t4GNZs13bP5Ft0d9408MwTIz+4exAX8jevW2xWesrt5Ous6UNPzR5B/8z7h6hUdSEVpDv+7gHPsjcs839lhg8PTdE/+6QByMARGk+nyAWRIE2sQ1J4hisMvK/OQgLG0iZuOYUcwAqRjHN/JX/re32WqclFAqRsjx0zXktCC6xupN4inABZIchif9aabi6zzarx5La5c5oxeVkfOspdRQ0c7t+eT670XYdsP6o1ffdz8vWbJcE9A6IlB91tuom0mr5TCnOz3FeBJwKdbCgl3qSDI1+zEHQDVB9sKlTDvp58zSLZqNDlOJ06E3Iu5KOdnStFcDw+Yxgf6HdW2yPh5PhlJX5cxeyXTM/NNXChAmIDLDP44VkXjq4EBww7+8Ehzh8Msm8usYIf4oTwdBk4Rpcf1onzeP/aQbLGv3Xk83vkc6hEz7U6nq8n6Lx5fvQXx21zjoHH/uwXXPECN939+xbCyn0V8SifNVBzkM7P1EF6Snb2UFATgdO15FzKUimnFcx3xusPCFtx2sAHPcSHTAhIACIZ/I2zkFbQSTU70OnLSwlF6eDYol1sCerjEgOdsVFhg6taXyTtH6FDhd2rZSPH8/MMos7z5pA4AbHEMJKSRHAhly5IefKkcECOQLzaNSmp1GKm0e/386DLwoH31PrDas6DS4grjeUupIxk26jg4ERl8NN+hIANpCZBhoUxCWRF/aKRIa4wjpTZUm1OTA30gJ9zKsJBMZAXoMm/9aKoxfnLBvA7s/gn1rtWS37dw1WiJBIuH8HYJpQg44Gj0VShBMdR3S5pf4CjqHuNCA54smFhinZ6RJ1XLCeP+CsviG9BVWUA/BBOhE4pHAUfEzjmzhqRTmPaPaTzhS5eTMjCgUmElx2JRMOVqaTcncQnEUjqIsGB0lW6TmD+T3pSYswoHO5lMmVOcpxtPZxHCY7oGRuZww2loqRAmk7bcHpcuLLce1heO7NxzC/Bz3T8FdPBoVkEukE6736PhttEFx2t1lpp/wgd3N2VKxs5aqvFGm39uw7wr3rLJvI3N4XBP2NqCqxKkWPRa2bpNDAmnawLcR5ZOHjZcYgQFjlOQoVrMR/hbY/XcjRAHCYP4gO8RDXfcxj7+zZ0iQ7XgrMkgzxdx3VGOPxbZEhyv9VMstsfeKmnBAfkOzKHB2V25yAgIRyxvkQ6pln8Smlc0s6OF4ki9q7r4K+YBo5NLVkgJ6v1hZAsQGdwPWIMVanbISWjsGt1MMZrAlfYXKP/J5xe1p8vhAlbMXI01PNLhYZwrM0Vy2yEA5SH0KkUOaDMkf54hOPEMR5HeThGdaJnFVkYLG6D/+KfJ9CPJI/8h8zE/twXKcUtw3J7ZUqHcI8V4QgWD0pnizsrzmw+IyjBgVtwoE+lg4DhRSGEkNkZQ8k4ZxTf9viopOUzpvpStqQvj2V5JQVVa3n/xx+2/noUo2yodZ3hlOf1+NBnaUrZKxkO3/tkYawzquCz7QkSJ4S5P1xlNOKWFyc4Ph/mWrEQgFAvnYDU0kWOnGYOUDQlOABTrG6kgzDOKNIApTL5DhNOBEX5yPGLU0STbujir6gSjq2aJQEqRR9A1drtOFs1WHh0cCdkE2HMiCeiS/pNsCsZDm6znB4JGiX74knZMbWSy+jCTREsdgLbe6UTkBrCISSAM9x1FY5jfaRaXnMkdA/UpdJBKK0LCxZuFw43QsKV4jqAjD+jSlSIqYIDAsNpY5maXyu0TkeDbMWLrVcyHJzsgBhLBMSiRlG77dGahCBo4QIMZ4HC/qQCUNgVFRrCASJRWN+CQcmAuxrCN3lQGxtl99qjjPkuUq2APBK1eN9tF+Umzx81sr8odtGLqlZYN6mC49jwHjYuv6eb3vrcLRMSDliJp+vIzUogIt1H8qxuMya2MgkiK1OfezYZ/z1rNOLyIcqAeIye5S+HYSapWjiWwjTulkIhKjwbRC5Z14WN3P4EZ4EdfcbERhw9yMNEqu5E1qM6+C1gxhzGaQf3DvJOR8Q2m+AueqmkCo4KXUGM4SMnpIy4ggmbGJZpt9dPUDhQDyalvuQtORQyXCsWNUKjmh3mO8sxHzlfPwOSFhK5e2mT+Y5y0aOPcGB8ss05BsyB1MAdMHiIyUsZgXFlMzRByBHukAKFqI1MtxyEqOD9SzvucCCjoulBeYxNjp/Ve9dqycQS2yTAFmNN2UFWmVayKkf5GPZdBDEBuIiqXKhN6oaLd3Wuwve3QMYZ40HZihf7X+FwwB3BOyj7Ip5xRTk4Ut7CjBrri0EAt0ypENYp5tvLXUvO0Qb+J3PvVoAwWFdhT6pd5k+QoucdjhfqzZMPg+gRZweGhbKFv+Kk/RAMwjUm6SBknCaH7cnjwncr3ne00nd1agUp8FE7tMfg79umXYqefb0fyP6Z4ObW+RecjS3WmrzW19II0v8TA/UaPWePNliFTMj3DNHQDcID0Rkq9IriOGN6K6tJ91ZWaqr/wLhH9AfGhSpPHMcPztgVYmrh2N2dC8VthA7BEaYDZf35GTiuelMLR15r9s7OlYXda4q61+zuylXaUM/AcTVZ5t8hM6ZoGTgypmgZODKmaP8FLDwOy2GQ/RsAAAAASUVORK5CYII=');width:180px;height:32px;display:block}.w{margin-left:auto;margin-right:auto;width:95%}h3{font-weight:400}#sidebar{transition:height .8s;-moz-transition:height .8s;-webkit-transition:top .8s ease-out;-o-transition:height .8s;width:260px}body{padding-bottom:250px!important}table{border-collapse:collapse;border-spacing:0;width:100%;display:table}address,caption,code,th,var{font-style:normal;font-weight:400}li{padding:5px 10px}caption,th{text-align:left}q:after,q:before{content:''}input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}td,th{padding:15px}.responsive-iframe{position:absolute;top:0;width:100%}.padding{padding:.01em 22px}*,:after,:before{box-sizing:inherit}.w3-dropdown-hover:hover .w3-dropdown-content,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}video{display:inline-block}[hidden]{display:none}a{background-color:transparent;}a:active,a:hover{outline-width:0}b{font-weight:bolder}mark{background:#ff0;color:#000}small{font-size:0.8rem;}sub,sup{font-size:0.75rem;;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}figure{margin:1em 40px}code{font-family:monospace,monospace;font-size:1em}button,input{overflow:visible}.r3,.w3-sidebar,textarea{overflow:auto}button,select{text-transform:none}[type=button],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}body.darkpagetheme #footer,body.darkpagetheme hr{border-top:1px solid #38444d}[type=button]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}[type=checkbox],[type=radio]{padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.w3-wide{letter-spacing:4px}hr{box-sizing:content-box;height:0;overflow:visible;border-top:1px solid #eee;margin:20px 0}.w3-btn{max-width:100%;text-overflow:ellipsis}.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:.3}.w3-btn:disabled:hover{box-shadow:none}.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}.w3-select{padding:9px 0;transition: all 0.3s ease;width:100%;border: 2px solid #4c7cff;border-radius: 6px;box-shadow: 0 2px 5px rgba(76,124,255,0.1);cursor: pointer;}.w3-select:hover {background: #fff;border-color: #6495ED;box-shadow: 0 4px 8px rgba(76,124,255,0.2);}.w3-select:focus {outline: none;border-color: #4c7cff;box-shadow: 0 0 0 3px rgba(76,124,255,0.25);background: white;}.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}.w3-dropdown-click:hover,.w3-dropdown-click:hover>.w3-button:first-child,.w3-dropdown-hover:first-child,.w3-dropdown-hover:hover>.w3-button:first-child{background-color:#ccc;color:#000}.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:300px;margin:0;padding:0;z-index:1}.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px}#adsside.stick,.w3-sidebar{position:fixed!important}.w3-sidebar{height:100%;
74width:200px;background-color:#fff}.normalvideo,.w3-bar,.w3-rest{overflow:hidden}.flex-center input,.slidecontainer,.w3-bar-block .w3-dropdown-click,.w3-bar-block .w3-dropdown-hover{width:100%}.w3-bar-block .w3-dropdown-click .w3-dropdown-content,.w3-bar-block .w3-dropdown-hover .w3-dropdown-content{min-width:100%;width:auto;white-space:nowrap}.w3-bar-block .w3-dropdown-click .w3-button,.w3-bar-block .w3-dropdown-hover .w3-button{width:100%;text-align:left;padding:8px 16px}.w3-main{width:100vw}#main,.w3-main{transition:margin-left .4s}.w3-bar{width:100%}.w3-center .w3-bar{display:inline-block;width:auto}.w3-bar .w3-bar-item{width:auto;float:left;border:none;display:block;outline:0}.w3-bar .w3-dropdown-click,.w3-bar .w3-dropdown-hover{position:static;float:left}.w3-bar .w3-button,input[type=submit]{white-space:normal}.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}.w3-bar:after,.w3-bar:before,.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row-padding:after,.w3-row-padding:before,.w3-row:after,.w3-row:before{content:"";display:table;clear:both}.w3-col,.w3-quarter{float:left;width:100%}.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s6{width:49.99999%}.w3-round-xlarge{border-radius:16px}.overlay button,.overlay input[type=text]{float:left;padding:15px;font-size:17px;border:none}.w3-row-padding,.w3-row-padding>.w3-col,.w3-row-padding>.w3-quarter{padding:0 8px}.w3-panel{margin-top:16px;margin-bottom:16px}#c1 form,.w3-margin-top{margin-top:16px!important}#c1 form,.w3-margin-bottom{margin-bottom:16px!important}.w3-card-4{box-shadow:0 4px 10px 0 rgba(0,0,0,.2),0 4px 20px 0 rgba(0,0,0,.19)}#c1,.c2,.dt,.r1,.r3{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.w3-opacity{opacity:.6}.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-animate-left{position:relative;animation:.4s animateleft}.w3-xxlarge{font-size:36px!important}.w3-left-align{text-align:left!important}.w3-center{text-align:center!important}.w3-border{border:1px solid #ccc!important}.w3-margin-right{margin-right:16px!important}.center,.w3-content{margin-right:auto;margin-left:auto}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-right{float:right!important}.w3-button:hover{color:#000!important;background-color:#ccc!important}#navbutton a,#secondbar a,#share-result a,#surveyshare-buttons a,.w3-black,.w3-teal,body.darkpagetheme #lang a,body.darkpagetheme a{color:#fff!important}.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#3a8338!important}.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}.w3-teal{background-color:#008073!important}.w3-black{background-color:#000!important}.w3-light-grey{color:#000;background-color:#f1f1f1!important}.w3-content{max-width:980px}.w3-text-teal{color:#008073!important}.w3-hide{display:none!important}.w3-show{display:block!important}.normalvideo{margin:auto;position:relative}.overlay,.surveymodal{position:fixed;z-index:2147483647;top:0;left:0}.overlay{height:100%;width:100%;display:none;background-color:rgba(0,0,0,.9)}.center{display:block}.modal-overlay .closebtn,.overlay .closebtn{position:absolute;top:20px;right:45px;font-size:60px;cursor:pointer;color:#fff}.activelinkto:after,.linkto:after,.tools:after{color:#777;margin-left:5px;font-weight:600;float:right}.modal-overlay .closebtn:hover,.overlay .closebtn:hover{color:#ccc}.overlay input[type=text]{width:80%;background:#fff}.overlay input[type=text]:hover{background:#f1f1f1}.overlay button{width:20%;background:#ddd;cursor:pointer}button,input[type=submit]{padding:10px 20px;cursor:pointer}.overlay button:hover{background:#bbb}.fa-globe:before{content:"\f0ac"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-search:before{content:"\f002"}.fa-picture-o:before{content:"\f03e"}.fa-download:before{content:"\f019"}.linkto:after,.tools:after{content:'\002B'}.activelinkto:after{content:"\2212"}#linkto textarea,#surveystepform textarea{width:100%;height:150px;padding:12px 20px;box-sizing:border-box;border:2px solid #ccc;border-radius:4px;background-color:#f8f8f8;resize:none}.tools{background-color:#eee;color:#444;cursor:pointer;padding:18px;width:100%;border:none;text-align:left;outline:0;transition:.4s}#videostart,.r1,.t2,.w3-btn,.w3-button,.zfo{text-align:center}.tools:hover{background-color:#ccc}#lang a{color:#000!important}body.darkpagetheme,body.darkpagetheme #c1,body.darkpagetheme #lang,body.darkpagetheme .accordion,body.darkpagetheme .dt th,body.darkpagetheme .surveymodal-body,body.darkpagetheme .tools,body.darkpagetheme .w3-light-grey,body.darkpagetheme .w3-sidebar,body.darkpagetheme .w3-white,body.darkpagetheme table{background-color:#1d2a35!important;color:#ddd!important}body.darkpagetheme .panel{background-color:#0d1721!important;color:#ddd!important}body.darkpagetheme #main{border-right:1px solid #38444d}body.darkpagetheme #footer{background-color:#1d2a35;padding:32px}body.darkpagetheme .dt{border:1px solid #38444d}body.darkpagetheme .dt tr{border-bottom:1px solid #38444d}body.darkpagetheme .dt tr:nth-child(odd){background-color:#1d2a35;color:#ddd}body.darkpagetheme .dt tr:nth-child(2n){background-color:#38444d;color:#ddd}body.darkpagetheme .w3-btn:active.w3-white,body.darkpagetheme .w3-btn:hover.w3-white,body.darkpagetheme .w3-button:active.w3-white,body.darkpagetheme .w3-button:hover.w3-white{background-color:#38444d!important}.f3{font-size:1.385rem;}.f4{font-size:1.31rem }.f5,h3{font-size:1.35rem;}h1,h2,h3,p{margin-bottom:1.1em}p{line-height:145%}.fa-suitcase:before{content:"\f0f2"}.w3-btn{background-color:#3a8338;margin-bottom:4px}:where(input[type=number],input[type=text],select,textarea){padding:12px 20px;margin:8px 0;display:inline-block;border:1px solid #ccc;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:calc(100% - 5px)}input[type=submit]:hover{background-color:#45a049}textarea:focus {outline: none;border-color: #4a6cfd;box-shadow: 0 0 0 3px rgba(74, 108, 253, 0.1);}.fa-bookmark:before{content:"\f02e"}.fa-twitter::before{content:"ð"}.fa-facebook:before{content:"\f09a"}.fa-linkedin:before{content:"\f0e1"}
74#videostart{width:61.8%;min-width:360px;margin:auto}.shareresult,.surveyshareresult{padding:15px;font-size:20px;width:50px;height:50px;text-align:center;margin:2px;border-radius:50%}.shareresult:hover,.surveyshareresult:hover{opacity:.7;text-decoration:none}.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;overflow:hidden;color:inherit;background-color:inherit;cursor:pointer;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#suggestions,.surveymodal,.surveytab{display:none}.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.w3-container,.w3-panel{padding:.01em 16px}.w3-hover-white:hover,.w3-white{color:#000!important;background-color:#fff!important}.w3-border-red{border-color:#f44336!important}.w3-round-large{border-radius:8px}.w3-large{font-size:18px!important}#send-feedback textarea,#share-result textarea{width:100%;height:80px;padding:12px 20px;box-sizing:border-box;border:2px solid #ccc;border-radius:4px;background-color:#f8f8f8;font-size:15px;resize:none}.fa-share-alt:before{content:"\f1e0"}.fa-print:before{content:"\f02f"}.fa-file-pdf-o:before{content:"\f1c1"}.ma20{margin:20px}#c1{border:1px solid #e5e5e5;background:#f7f7f7;clear:both}#c1 form{padding:8px 12px}#c1 .ht,#c1 h2{margin:4px;font-size:1rem;;font-weight:600}.nt{font-weight:400;color:#444}.dt th,.highlight,.surveyclose,.t2{font-weight:600}.c2{border:1px solid #ddd;padding:15px 20px 5px}.z3 a:hover{text-decoration:underline}.z5{padding:5px 1px;border-bottom:1px dotted #ccc;margin-bottom:4px}.z5 h2,.z5 h3{font-size:1rem;;display:inline}sub,sup{line-height:.5em}.zfo{border:1px solid #ddd;padding:.7em}.t2{word-wrap:break-word;font-size: 1.385rem;;margin-bottom:.5em}.r1,.r3{font-size:1.31rem;;padding:.5em;border:1px solid #ccc}.r1{font-size:1.97rem;}.dt{width:100%;border:2px solid #555}.dt td,.dt th{white-space:-o-pre-wrap;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap}.dt th{background:#e4e4e4;}tr.tr1{background:#ebeff9}tr.tr2{background:#fff}.surveystep.finish,button,input[type=submit]{background-color:#3a8338;}:where(input[type=number],input[type=text],select){padding:12px 20px;margin:8px 0;display:inline-block;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;width:calc(100% - 5px)}input[type=submit]{width:100%;color:#fff;border:none;margin:0 auto}.surveymodal{padding-top:5%;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.9)}.surveymodal-content{position:relative;background-color:#fefefe;margin:auto;padding:0;width:50%;min-width:380px;max-height:85%;overflow-y:scroll;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);-webkit-animation-name:animatetop;-webkit-animation-duration:.4s;animation-name:animatetop;animation-duration:.4s;-ms-overflow-style:none;scrollbar-width:none}.surveymodal-content::-webkit-scrollbar{display:none}@-webkit-keyframes animatetop{from{top:-300px;opacity:0}to{top:0;opacity:1}}@keyframes animatetop{from{top:-300px;opacity:0}to{top:0;opacity:1}}.surveyclose{color:#fff;float:right;font-size:28px}.surveyclose:focus,.surveyclose:hover{color:#000;cursor:pointer}.surveymodal-header{padding:2px 16px;background-color:#ff6f61;color:#fff}.surveymodal-body{padding:2px 16px}.surveymodal-footer{padding:2px 16px;background-color:#5cb85c;color:#fff}#surveystepform{margin:0 auto;width:80%}#surveystepform input.invalid{background-color:#fdd}.no-wrap,.surveystep{display:inline-block}button{color:#fff;border:none}button:hover{opacity:.8}.surveystep{height:15px;width:15px;margin:0 2px;background-color:#bbb;border:none;border-radius:50%;opacity:.5}.surveystepcontainer{padding:2px 16px;background-color:#fff}.surveyslider{-webkit-appearance:none;width:100%;height:15px;border-radius:5px;background:#d3d3d3;outline:0;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.surveyslider::-webkit-surveyslider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;border-radius:50%;background-color:#3a8338;cursor:pointer}.surveyslider::-moz-range-thumb{width:25px;height:25px;border-radius:50%;background-color:#3a8338;cursor:pointer}.fa-facebook,.facebook{background:#3b5998;color:#fff}.fa-twitter{font-family:sans-serif;background:#55acee;color:#fff}.fa-envelope-o{background:#dd4b39;color:#fff}.fa-linkedin,.linkedin{background:#007bb5;color:#fff}.fa-envelope-o:before{content:"\f003"}.fa-comment:before{content:"\f075"}.w3-card{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.twitter{background:#55acee;color:#fff}.no-wrap{white-space:nowrap;overflow:hidden}#suggestions,.modal-container{z-index:2147483647;overflow-y:auto}.w3-bar-item{max-width:none}.search-box{width:100%!important;border:2px solid #90ee90!important;border-radius:25px!important;outline:0;box-sizing:border-box;background-color:#fff;color:#000;transition:border .3s;height:40px}#suggestions div:hover,.reference{background-color:#eee}.search-box:focus{border-color:#b8860b!important}.search-icon{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer;color:#000}.highlight{color:red}#suggestions{border:1px solid #006400;border-top:none;border-radius:0 0 5px 5px;position:absolute;background-color:#fff;top:100%;left:0;max-width:100%}#suggestions div{padding:10px;cursor:pointer;text-align:left;color:#000}.flex-container{display:flex;align-items:center;padding:10px}#firsttitle{margin-left:auto}.flex-left{flex:0 1 auto}.flex-center{flex:0.9;position:relative;margin-left:15px}.flex-right{flex:0 0 auto}.suggestion-item.highlighted{background-color:#79d757}.reference{color:#444;padding:18px;width:100%;border:none;text-align:left;outline:0;word-break:break-all}.category-menu a,.menu-icon{text-decoration:none;color:#000!important}.modal-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:80%;height:80%;justify-content:center;text-align:left;background:rgba(255,255,255,.9);border-radius:20px;box-shadow:20px 15px 20px 0 rgb(255 255 255 / 20%);border-right:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}.modal-overlay{display:none;position:fixed;top:0;left:0;z-index:2147483646;width:100%;height:100%;background-color:rgba(0,0,0,.8);overflow-y:initial!important}.loaderpdf{border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:2s linear infinite spin;animation:2s linear infinite spin;margin-left:auto;margin-right:auto}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}#contain300m-1{position:relative;width:100%;margin:0 auto;overflow:hidden;padding-top:100px}.menu-icon{font-size:26px;cursor:pointer;height:26px;
74display:flex;align-items:center;justify-content:center}.category-menu a{display:block;padding:12px 16px}.category-menu a:hover{background-color:#ddd}#right{width:342px}.w3-dropdown-content{opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,transform .3s,visibility .3s}.dt,.st{width:100%;box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);}.dt th,.dt td{white-space: -o-pre-wrap;word-break: break-word;white-space: pre-wrap;white-space: -moz-pre-wrap;white-space: -pre-wrap;},.st th,.st td{padding:5px;border:1px solid #ddd }.dt th,.st th{background:#e4e4e4;font-size:93%;font-weight:bold }tr.tr1{background:#F7F7F7 }tr.tr2{background:#fff }.dt overflow-x:auto tr:hover{background:#ff9 }.thc th,.tdc td{text-align:center }.thr th,.tdr td{text-align:right }tr.trh{font-size:108%;font-weight:bold }.z3 a{text-decoration:none }.z3 a:hover{text-decoration:underline }.f1{font-size:1.96rem;overflow-wrap: break-word;}.f2{font-size:1.67rem}.tc{word-break: break-word;}.m2{overflow:auto;padding:0 }.m2 li{display:inline;float:left;margin:0;padding:0;border-right:1px solid #ddd }.m2 li a{display:block;color:#555;text-decoration:none;padding:4px;font-size:0.93rem }.m2 a.on:link,.m2 a.on:visited{background:#ddd;color:#000;font-weight:bold }.m2 a:hover,.m2 a:active{background:#e6e6e6;color:#000 }.f0{font-size:5em }.z2{display:inline }.z3 a{text-decoration:none }.z3 a:hover{text-decoration:underline }.z4{border-bottom:1px solid #ddd;margin-top:1em }.z5{padding:5px 1px;border-bottom:1px dotted #ccc;margin-bottom:4px }.z5 h2,.z5 h3{font-size:100%;display:inline }.z6{font-size:100%;background:#f0f0f0;border-bottom:1px solid #ddd;padding:5px 2px;margin:4px 0 4px }sub,sup{line-height:.5em }.zf{border:1px solid #ddd;margin-bottom:1.6em }.zfo{border:1px solid #ddd;text-align:center;padding:.7em }.zff{text-align:center;padding:1.5em;margin:0 }.zft{padding:.7em;margin:0;background:#e5e5e5 }.zl{border-color:#e9e9e9 #ddd #ddd #ddd;border-style:solid;border-width:1px;width:100%;margin-bottom:1em }.zl th,.m2{background:#eee;*width:100%;padding:.3em .8em;border-bottom:1px solid #ddd }.zl h2,.zl p{margin:0;font-size:100% }.zi img{max-width:660px;width:100%;height:auto;aspect-ratio: attr(width) / attr(height);}.w3-bar-block .w3-button {display: block; width: 100%;text-align: left; }.w3-custom-banner { display: flex; align-items: center; justify-content: space-between; padding: 10px 20px; background-color: #f5f0ff; border-radius: 5px; } .w3-custom-banner-text { color: #4a4a4a; } .w3-custom-button { background-color: #7c4dff; color: white; padding: 8px 16px; border: none; border-radius: 4px; cursor: pointer; } .w3-custom-button:hover { background-color: #6a3ecc; }#lang-footer{position:relative;display:inline-block;text-align:left;vertical-align:baseline}#lang-footer>summary{display:inline;list-style:none;cursor:pointer}#lang-footer>summary::-webkit-details-marker{display:none}#lang-footer>summary:hover{text-decoration:underline}#lang-footer>summary svg{width:1em;height:1em;vertical-align:-.12em;margin-right:.35em;fill:currentColor}#lang-footer>summary::after{content:"\25be";margin-left:.35em;font-size:.8em}#lang-footer[open]>summary::after{content:"\25b4"}#lang-footer-list{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);z-index:30;
74min-width:200px;max-height:60vh;overflow-y:auto;padding:6px;background:#fff;border:1px solid #ccd3da;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.18);text-align:left}#lang-footer-list a{display:block;width:auto;margin:0;padding:7px 14px;border:none;border-radius:6px;background:none;font-size:.9rem;line-height:1.3;color:#333;text-decoration:none;white-space:nowrap}#lang-footer-list a:hover{background:#eef2f6;color:#111;text-decoration:none}body.darkpagetheme #lang-footer-list{background:#1d2a35;border-color:#38444d}body.darkpagetheme #lang-footer-list a{color:#dfe6ec}body.darkpagetheme #lang-footer-list a:hover{background:#38444d;color:#fff}</style><style id="mwt-ui-refresh"> 75 76 :root { 77 --mwt-bg: #f6f7fb; 78 --mwt-surface: #ffffff; 79 --mwt-text: #0f172a; 80 --mwt-muted: #475569; 81 --mwt-border: rgba(15, 23, 42, 0.12); 82 --mwt-shadow: 0 10px 30px rgba(15, 23, 42, 0.10); 83 --mwt-radius: 16px; 84 --mwt-accent: #7c4dff; 85 --mwt-btn-primary: #1e293b; /* slate-800 */ 86 --mwt-btn-primary-hover: #0f172a; /* slate-900 */ 87 --mwt-btn-secondary: #475569; /* slate-600 */ 88 --mwt-btn-secondary-hover: #334155; /* slate-700 */ 89 --mwt-btn-ring: rgba(124, 77, 255, 0.35); 90 --mwt-notice-overlay: rgba(2, 6, 23, 0.72); 91 } 92 93 /* Support notice modal (non-members). Scoped to avoid affecting other modals. */ 94 #mwt-notice-1790230449[hidden] { 95 display: none !important; 96 } 97 98 #mwt-notice-1790230449 { 99 position: fixed; 100 inset: 0; 101 z-index: 2147483647; 102 display: grid; 103 place-items: center; 104 padding: 18px; 105 opacity: 0; 106 transition: opacity 160ms ease; 107 } 108 109 #mwt-notice-1790230449.mwt-notice-open { 110 opacity: 1; 111 } 112 113 #mwt-notice-1790230449.mwt-notice-closing { 114 opacity: 0; 115 } 116 117 #mwt-notice-1790230449 .mwt-notice-backdrop { 118 position: absolute; 119 inset: 0; 120 background: var(--mwt-notice-overlay); 121 backdrop-filter: blur(10px); 122 -webkit-backdrop-filter: blur(10px); 123 } 124 125 #mwt-notice-1790230449 .mwt-notice-dialog { 126 position: relative; 127 width: min(560px, calc(100vw - 32px)); 128 max-height: min(84vh, 720px); 129 overflow: auto; 130 background: var(--mwt-surface); 131 color: var(--mwt-text); 132 border: 1px solid rgba(15, 23, 42, 0.12); 133 border-radius: 18px; 134 box-shadow: 0 32px 90px rgba(2, 6, 23, 0.38); 135 opacity: 0; 136 transform: translateY(12px) scale(0.99); 137 transition: transform 180ms ease, opacity 180ms ease; 138 } 139 140 #mwt-notice-1790230449.mwt-notice-open .mwt-notice-dialog { 141 opacity: 1; 142 transform: translateY(0) scale(1); 143 } 144 145 #mwt-notice-1790230449.mwt-notice-closing .mwt-notice-dialog { 146 opacity: 0; 147 transform: translateY(14px) scale(0.99); 148 } 149 150 #mwt-notice-1790230449 .mwt-notice-dialog::before { 151 content: ""; 152 position: sticky; 153 top: 0; 154 display: block; 155 height: 4px; 156 background: linear-gradient(90deg, rgba(124, 77, 255, 0.95), rgba(74, 144, 226, 0.95)); 157 border-top-left-radius: 18px; 158 border-top-right-radius: 18px; 159 z-index: 1; 160 } 161 162 @media (prefers-reduced-motion: reduce) { 163 #mwt-notice-1790230449 { 164 transition: none; 165 } 166 167 #mwt-notice-1790230449 .mwt-notice-dialog { 168 transition: none; 169 transform: none; 170 opacity: 1; 171 } 172 } 173 174 #mwt-notice-1790230449 .mwt-notice-header { 175 display: flex; 176 gap: 12px; 177 align-items: flex-start; 178 padding: 18px 18px 0; 179 } 180 181 #mwt-notice-1790230449 .mwt-notice-icon { 182 width: 44px; 183 height: 44px; 184 border-radius: 14px; 185 background: linear-gradient(135deg, rgba(124, 77, 255, 0.95), rgba(74, 144, 226, 0.95)); 186 box-shadow: 0 12px 24px rgba(124, 77, 255, 0.25); 187 display: grid; 188 place-items: center; 189 color: #ffffff; 190 flex: 0 0 auto; 191 } 192 193 #mwt-notice-1790230449 .mwt-notice-eyebrow { 194 font-size: 12px; 195 letter-spacing: 0.08em; 196 text-transform: uppercase; 197 color: var(--mwt-muted); 198 margin: 2px 0 2px; 199 } 200 201 #mwt-notice-1790230449 .mwt-notice-title { 202 margin: 0; 203 font-size: 1.25rem; 204 line-height: 1.25; 205 } 206 207 #mwt-notice-1790230449 .mwt-notice-content { 208 padding: 0 18px 18px; 209 } 210 211 #mwt-notice-1790230449 .mwt-notice-text { 212 margin: 10px 0 10px; 213 color: var(--mwt-muted);
214 overflow-wrap: anywhere; 215 } 216 217 #mwt-notice-1790230449 .mwt-notice-list { 218 margin: 0; 219 padding-left: 18px; 220 color: var(--mwt-muted); 221 } 222 223 #mwt-notice-1790230449 .mwt-notice-actions { 224 margin-top: 14px; 225 display: flex; 226 gap: 10px; 227 flex-wrap: wrap; 228 } 229 230 #mwt-notice-1790230449 .mwt-notice-btn { 231 display: inline-flex; 232 align-items: center; 233 justify-content: center; 234 padding: 10px 12px; 235 border-radius: 12px; 236 font-weight: 600; 237 text-decoration: none; 238 border: 1px solid transparent; 239 cursor: pointer; 240 user-select: none; 241 line-height: 1.1; 242 } 243 244 #mwt-notice-1790230449 .mwt-notice-btn-primary { 245 background: linear-gradient(135deg, rgba(124, 77, 255, 0.95), rgba(74, 144, 226, 0.95)); 246 color: #ffffff !important; 247 box-shadow: 0 12px 26px rgba(15, 23, 42, 0.20); 248 } 249 250 #mwt-notice-1790230449 .mwt-notice-btn-primary:hover { 251 filter: brightness(1.04); 252 } 253 254 #mwt-notice-1790230449 .mwt-notice-btn-secondary { 255 background: rgba(15, 23, 42, 0.06); 256 color: var(--mwt-text) !important; 257 border-color: rgba(15, 23, 42, 0.12); 258 } 259 260 #mwt-notice-1790230449 .mwt-notice-btn-secondary:hover { 261 background: rgba(15, 23, 42, 0.09); 262 } 263 264 #mwt-notice-1790230449 .mwt-notice-footer { 265 margin-top: 12px; 266 padding-top: 12px; 267 border-top: 1px solid rgba(15, 23, 42, 0.08); 268 display: flex; 269 align-items: center; 270 justify-content: space-between; 271 gap: 10px; 272 } 273 274 #mwt-notice-1790230449 .mwt-notice-link { 275 background: none; 276 border: none; 277 padding: 0; 278 color: rgba(15, 23, 42, 0.72); 279 text-decoration: underline; 280 cursor: pointer; 281 font: inherit; 282 } 283 284 #mwt-notice-1790230449 .mwt-notice-link:hover { 285 color: rgba(15, 23, 42, 0.92); 286 } 287 288 #mwt-notice-1790230449 .mwt-notice-link[disabled], 289 #mwt-notice-1790230449 .mwt-notice-link[aria-disabled="true"] { 290 opacity: 0.45; 291 cursor: not-allowed; 292 text-decoration: none; 293 } 294 295 @media (max-width: 420px) { 296 #mwt-notice-1790230449 .mwt-notice-actions { 297 flex-direction: column; 298 } 299 300 #mwt-notice-1790230449 .mwt-notice-btn { 301 width: 100%; 302 } 303 } 304 305 /* Buttons: primary (tool submit) + secondary (#sharearea). Keep styles scoped to avoid affecting nav highlights. */ 306 #c1 form input[type="submit"], 307 #c1 form button[type="submit"], 308 #c1 form button:not([type]) { 309 background-color: var(--mwt-btn-primary) !important; 310 color: #ffffff !important; 311 border: 1px solid rgba(255, 255, 255, 0.14) !important; 312 border-radius: 12px !important; 313 box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18); 314 cursor: pointer; 315 transition: transform 80ms ease, background-color 160ms ease, box-shadow 160ms ease; 316 } 317 318 #c1 form input[type="submit"]:hover, 319 #c1 form button[type="submit"]:hover, 320 #c1 form button:not([type]):hover { 321 background-color: var(--mwt-btn-primary-hover) !important; 322 } 323 324 #c1 form input[type="submit"]:active, 325 #c1 form button[type="submit"]:active, 326 #c1 form button:not([type]):active { 327 transform: translateY(1px); 328 box-shadow: 0 6px 14px rgba(15, 23, 42, 0.16); 329 } 330 331 #c1 form input[type="submit"]:focus-visible, 332 #c1 form button[type="submit"]:focus-visible, 333 #c1 form button:not([type]):focus-visible, 334 #sharearea .w3-btn.w3-green:focus-visible, 335 #sharearea .w3-button.w3-green:focus-visible { 336 outline: none; 337 box-shadow: 0 0 0 3px var(--mwt-btn-ring), 0 10px 22px rgba(15, 23, 42, 0.18); 338 } 339 340 #sharearea .w3-btn.w3-green, 341 #sharearea .w3-button.w3-green { 342 background-color: var(--mwt-btn-secondary) !important; 343 color: #ffffff !important; 344 border: 1px solid rgba(255, 255, 255, 0.14) !important; 345 border-radius: 12px !important; 346 box-shadow: 0 10px 22px rgba(15, 23, 42, 0.14); 347 cursor: pointer; 348 transition: transform 80ms ease, background-color 160ms ease, box-shadow 160ms ease; 349 } 350 351 #sharearea .w3-btn.w3-green:hover, 352 #sharearea .w3-button.w3-green:hover { 353 background-color: var(--mwt-btn-secondary-hover) !important; 354 } 355 356 #sharearea .w3-btn.w3-green:active, 357 #sharearea .w3-button.w3-green:active { 358 transform: translateY(1px); 359 box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12); 360 } 361 362 363 html, 364 body { 365 text-rendering: optimizeLegibility; 366 -webkit-font-smoothing: antialiased; 367 } 368 369 body { 370 background: var(--mwt-bg) !important; 371 color: var(--mwt-text); 372 } 373 374 .main { 375 background: transparent; 376 } 377 378 @media (min-width: 994px) { 379 body.mwt-noads .main { 380 margin-right: 20px; 381 } 382 } 383 384 body.mwt-noads #right { 385 display: none; 386 } 387 388 .mwt-tool-trust { 389 display: flex; 390 align-items: center; 391 justify-content: flex-start; 392 flex-wrap: wrap; 393 gap: 8px 24px; 394 margin: -8px 0 18px; 395 padding: 0; 396 color: var(--mwt-muted); 397 font-size: 0.86rem; 398 } 399 400 .mwt-tool-trust-item { 401 display: inline-flex; 402 align-items: center; 403 gap: 7px; 404 white-space: nowrap; 405 font-weight: 600; 406 } 407 408 .mwt-tool-trust-check { 409 display: inline-grid; 410 place-items: center; 411 width: 18px; 412 height: 18px; 413 border-radius: 50%; 414 background: #15803d; 415 color: #ffffff; 416 font-size: 12px; 417 line-height: 1; 418 } 419 420 body.darkpagetheme .mwt-tool-trust-check { 421 background: #22c55e; 422 color: #0d1721; 423 } 424 425 .miniwebtoolh { 426 position: relative; 427 } 428 429 .tool-tryit { 430 position: absolute; 431 left: 22px; 432 bottom: -13px; 433 background: #FDE047; 434 color: #713F12; 435 font-size: 12px; 436 font-weight: 800; 437 padding: 5px 13px; 438 border-radius: 0 0 8px 8px; 439 box-shadow: 0 3px 8px rgba(30, 27, 51, 0.18); 440 z-index: 2; 441 pointer-events: none; 442 line-height: 1; 443 white-space: nowrap; 444 } 445 446 @media (max-width: 640px) { 447 .tool-tryit { 448 font-size: 11px; 449 padding: 4px 10px; 450 left: 14px; 451 bottom: -11px; 452 } 453 } 454 455 /* Top bar */ 456 #topbar { 457 box-shadow: 0 10px 35px rgba(15, 23, 42, 0.10); 458 } 459 460 #firstbar {
461 border-bottom: 1px solid rgba(15, 23, 42, 0.08); 462 } 463 464 #firstbar .w3-wide { 465 letter-spacing: 0.06em !important; 466 color: rgba(15, 23, 42, 0.78); 467 } 468 469 #secondbar.w3-black { 470 background: linear-gradient(90deg, #0b1020 0%, #221c3d 40%, #162355 100%) !important; 471 } 472 473 #secondbar { 474 border-top: 1px solid rgba(255, 255, 255, 0.10); 475 } 476 477 #secondbar .flex-right { 478 display: flex; 479 align-items: center; 480 gap: 10px; 481 } 482 483 /* Dropdown hover: make it easier to move mouse from button to menu (lang + category) */ 484 @media (hover: hover) and (pointer: fine) and (min-width: 994px) { 485 /* Ensure dropdowns can overlap main content (prevents hover "vanish" when menu is under another layer). */ 486 #sidebar, 487 #sidebar1 { 488 489 overflow-x: visible !important; 490 } 491 492 #secondbar .w3-dropdown-content, 493 #sidebar .w3-dropdown-content, 494 #sidebar1 .w3-dropdown-content { 495 z-index: 2100; 496 pointer-events: auto; 497 } 498 499 #secondbar .w3-dropdown-hover, 500 #sidebar .w3-dropdown-hover, 501 #sidebar1 .w3-dropdown-hover { 502 position: relative; 503 } 504 505 #secondbar .w3-dropdown-hover > .w3-dropdown-content, 506 #sidebar .w3-dropdown-hover > .w3-dropdown-content, 507 #sidebar1 .w3-dropdown-hover > .w3-dropdown-content { 508 margin-top: 0; 509 } 510 511 #secondbar .w3-dropdown-hover > .w3-dropdown-content::before, 512 #sidebar .w3-dropdown-hover > .w3-dropdown-content::before, 513 #sidebar1 .w3-dropdown-hover > .w3-dropdown-content::before { 514 content: ""; 515 position: absolute; 516 left: 0; 517 right: 0; 518 top: -12px; 519 height: 12px; 520 } 521 522 /* Avoid hover flicker: keep dropdown position stable and delay hide a bit */ 523 #secondbar .w3-dropdown-content, 524 #sidebar .w3-dropdown-content, 525 #sidebar1 .w3-dropdown-content { 526 transform: none !important; 527 transition: opacity 120ms ease, visibility 0s linear 120ms !important; 528 } 529 530 #secondbar .w3-dropdown-hover:hover > .w3-dropdown-content, 531 #sidebar .w3-dropdown-hover:hover > .w3-dropdown-content, 532 #sidebar1 .w3-dropdown-hover:hover > .w3-dropdown-content { 533 transition: opacity 120ms ease, visibility 0s linear 0s !important; 534 } 535 } 536 537 #secondbar #navbutton.w3-black, 538 #secondbar .flex-right > .w3-dropdown-hover.w3-black { 539 background: transparent !important; 540 } 541 542 #secondbar #navbutton > a.w3-button, 543 #secondbar #navbutton > button.w3-button, 544 #secondbar #navbutton > .w3-dropdown-hover > a.w3-button, 545 #secondbar #navbutton > .w3-dropdown-hover > button.w3-button { 546 border-radius: 999px !important; 547 padding: 10px 14px !important; 548 background: rgba(255, 255, 255, 0.10) !important; 549 color: #fff !important; 550 } 551 552 #secondbar #navbutton .w3-green { 553 background: rgba(124, 77, 255, 0.65) !important; 554 } 555 556 #secondbar #navbutton > a.w3-button:hover, 557 #secondbar #navbutton > button.w3-button:hover, 558 #secondbar #navbutton > .w3-dropdown-hover > a.w3-button:hover, 559 #secondbar #navbutton > .w3-dropdown-hover > button.w3-button:hover { 560 background: rgba(255, 255, 255, 0.16) !important; 561 } 562 563 #secondbar .flex-right > a.w3-bar-item.w3-button, 564 #secondbar .flex-right > .w3-dropdown-hover > button.w3-button { 565 display: inline-flex; 566 align-items: center; 567 gap: 8px; 568 border-radius: 12px !important; 569 background: rgba(124, 77, 255, 0.22) !important; 570 border: 1px solid rgba(255, 255, 255, 0.18); 571 color: #fff !important; 572 } 573 574 #secondbar .flex-right > a.w3-bar-item.w3-button:hover, 575 #secondbar .flex-right > .w3-dropdown-hover:hover > button.w3-button { 576 background: rgba(124, 77, 255, 0.32) !important; 577 } 578 579 /* Search */ 580 .search-box { 581 height: 44px !important; 582 padding: 0 44px 0 14px !important; 583 border-radius: 999px !important; 584 border: 1px solid rgba(255, 255, 255, 0.16) !important; 585 background: rgba(255, 255, 255, 0.96) !important; 586 color: var(--mwt-text) !important; 587 } 588 589 .search-box::placeholder { 590 color: rgba(71, 85, 105, 0.85); 591 } 592 593 .search-box:focus { 594 border-color: rgba(124, 77, 255, 0.60) !important; 595 box-shadow: 0 0 0 4px rgba(124, 77, 255, 0.18); 596 } 597 598 #suggestions { 599 margin-top: 10px; 600 border: 1px solid var(--mwt-border) !important; 601 border-radius: 16px !important; 602 box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16); 603 overflow: hidden; 604 } 605 606 #suggestions div { 607 padding: 10px 12px !important; 608 } 609 610 #suggestions div:hover { 611 background: rgba(124, 77, 255, 0.10) !important; 612 } 613 614 .suggestion-item.highlighted { 615 background: rgba(34, 197, 94, 0.14) !important; 616 } 617 618 .search-icon { 619 color: rgba(15, 23, 42, 0.75) !important; 620 right: 14px !important; 621 } 622 623 /* Dropdown menus (Share / Language) */ 624 #secondbar .w3-dropdown-content { 625 background: rgba(255, 255, 255, 0.98) !important; 626 color: var(--mwt-text) !important; 627 border: 1px solid var(--mwt-border) !important; 628 border-radius: 14px; 629 box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18); 630 padding: 6px; 631 margin-top: 10px; 632 min-width: 220px; 633 max-height: 70vh; 634 overflow-y: auto; 635 overscroll-behavior: contain; 636 } 637 638 .mwt-accent-btn { 639 display: inline-flex; 640 align-items: center; 641 justify-content: center; 642 gap: 8px; 643 padding: 10px 14px !important; 644 border-radius: 12px !important; 645 border: 1px solid rgba(255, 255, 255, 0.18) !important; 646 background: linear-gradient(135deg, rgba(124, 77, 255, 0.95), rgba(74, 144, 226, 0.95)) !important; 647 color: #fff !important; 648 text-decoration: none !important; 649 } 650 651 .mwt-accent-btn:hover { 652 filter: brightness(1.05); 653 } 654 655 .mwt-accent-btn:focus-visible { 656 outline: 3px solid rgba(124, 77, 255, 0.28); 657 outline-offset: 2px; 658 } 659 660 #secondbar .w3-dropdown-content a, 661 #secondbar .w3-dropdown-content .w3-bar-item.w3-button { 662 background: transparent !important; 663 color: inherit !important; 664 border-radius: 10px !important; 665 padding: 10px 12px; 666 line-height: 1.25; 667 } 668 669 #secondbar .w3-dropdown-content .w3-black { 670 background: transparent !important; 671 color: inherit !important; 672 } 673 674 #secondbar .w3-dropdown-content a:hover, 675 #secondbar .w3-dropdown-content .w3-bar-item.w3-button:hover { 676 background: rgba(124, 77, 255, 0.10) !important; 677 } 678 679 #secondbar .w3-dropdown-content i.fa { 680 margin-right: 8px; 681 } 682 683 /* Content cards */ 684 .c2, 685 .reference, 686 footer.w3-panel { 687 background: var(--mwt-surface) !important; 688 border: 1px solid var(--mwt-border); 689 border-radius: var(--mwt-radius); 690 box-shadow: var(--mwt-shadow); 691 } 692 693 footer.w3-panel { 694 box-shadow: none; 695 opacity: 1 !important; 696 } 697 698 /* Tool card */ 699 #c1 { 700 background: var(--mwt-surface) !important; 701 border: 1px solid var(--mwt-border); 702 border-radius: var(--mwt-radius) !important; 703 box-shadow: var(--mwt-shadow); 704 } 705 706 #c1 .miniwebtoolh { 707 border-radius: var(--mwt-radius) var(--mwt-radius) 0 0; 708 } 709 710 /* Sidebar list */ 711 #sidebar1 { 712 background: rgba(255, 255, 255, 0.72); 713 border: 1px solid var(--mwt-border); 714 border-radius: var(--mwt-radius); 715 backdrop-filter: blur(10px); 716 } 717 718 #sidebar1 h2 { 719 margin: 14px 10px 8px !important; 720 color: rgba(15, 23, 42, 0.88); 721 font-weight: 800; 722 } 723 724 #sidebar1 a { 725 display: block; 726 padding: 10px 12px !important; 727 line-height: 1.25; 728 text-decoration: none; 729 color: rgba(15, 23, 42, 0.84) !important; 730 border-radius: 12px; 731 margin: 2px 0; 732 } 733 734 #sidebar1 a:hover { 735 background: rgba(124, 77, 255, 0.10) !important; 736 color: rgba(15, 23, 42, 0.92) !important; 737 } 738 739 #sidebar1 a.w3-black { 740 background: transparent !important; 741 color: rgba(15, 23, 42, 0.84) !important; 742 } 743 744 #sidebar1 a.w3-green { 745 background: rgba(124, 77, 255, 0.16) !important; 746 border: 1px solid rgba(124, 77, 255, 0.18); 747 color: rgba(15, 23, 42, 0.96) !important; 748 font-weight: 700; 749 } 750 751 #sidebar1 a.w3-green:hover { 752 background: rgba(124, 77, 255, 0.18) !important; 753 color: rgba(15, 23, 42, 0.96) !important; 754 } 755 756 #sidebar1 a:focus-visible { 757 outline: 3px solid rgba(124, 77, 255, 0.28); 758 outline-offset: 2px; 759 } 760 761 /* Right sidebar wrapper */ 762 #right { 763 padding: 0 3px; 764 } 765 766 /* Floating tooltip */ 767 #mwt-tip { 768 position: fixed; 769 padding: 10px 14px; 770 max-width: 320px; 771 background: linear-gradient(135deg, #1a1a2e, #16213e); 772 color: #f0f0f0; 773 font-size: 13px; 774 line-height: 1.5; 775 border-radius: 8px; 776 box-shadow: 0 4px 20px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.1); 777 z-index: 999999; 778 pointer-events: none; 779 opacity: 0; 780 transition: opacity 0.15s ease; 781 } 782 #mwt-tip.show { opacity: 1; } 783 784</style> <style> 785@media screen and (max-width: 1110px) { #sidebar { display:none!important } } 786#right [data-desktop], 787#right [data-mobile], 788#right .desktop-250, 789#right .desktop-300, 790#right .desktop-600, 791#dSpace { 792 display: none !important; 793 height: 0 !important; 794 min-height: 0 !important; 795 overflow: hidden !important; 796} 797#topbar { top: 0 !important; } 798@media screen and (max-width: 993px) { 799 body { margin-top: 100px !important; } 800} 801#sidebar1, .bc-foot { display: none !important; } 802@media screen and (min-width: 994px) { 803 #sidebar { display: none !important; } 804 .main, footer.ftmargin { margin-left: auto !important; margin-right: auto !important; max-width: 1100px; } 805} 806</style> 807<style type="text/css"> 808#id_body{height:300px}.p_trap{display:none} 809.text-white :is(h1,h2,h3,h4){color:#fff} 810@media (max-width:600px) { 811 input[type=text]{ 812 width: 100%; 813 } 814} 815@media screen and (max-width: 1110px) { 816 #sidebar { display:none!important} 817} 818</style>
819<script src="https://cdn.tailwindcss.com"></script>
819 820 <style> 821 @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=optional'); 822 823 * { 824 font-family: 'Inter', system-ui, -apple-system, sans-serif; 825 } 826 827 .gradient-bg { 828 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); 829 } 830 831 .glass-effect { 832 background: rgba(255, 255, 255, 0.1); 833 backdrop-filter: blur(10px); 834 border: 1px solid rgba(255, 255, 255, 0.2); 835 } 836 837 .card-hover { 838 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 839 } 840 841 .card-hover:hover { 842 transform: translateY(-8px); 843 box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); 844 } 845 846 .floating-animation { 847 animation: float 6s ease-in-out infinite; 848 } 849 850 @keyframes float { 851 0%, 100% { transform: translateY(0px); } 852 50% { transform: translateY(-20px); } 853 } 854 855 .pulse-animation { 856 animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; 857 } 858 859 .text-gradient { 860 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); 861 -webkit-background-clip: text; 862 -webkit-text-fill-color: transparent; 863 background-clip: text; 864 } 865 866 .bento-grid { 867 display: grid; 868 grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); 869 gap: 1.5rem; 870 } 871 872 .bento-item { 873 border-radius: 1.5rem; 874 overflow: hidden; 875 transition: all 0.4s ease; 876 } 877 878 .bento-large { 879 grid-column: span 1; 880 } 881 @media (min-width: 768px) { 882 .bento-large { 883 grid-column: span 2; 884 } 885 } 886 887 .neon-glow { 888 box-shadow: 0 0 20px rgba(102, 126, 234, 0.3); 889 } 890 891 .feature-icon { 892 width: 60px; 893 height: 60px; 894 border-radius: 16px; 895 display: flex; 896 align-items: center; 897 justify-content: center; 898 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); 899 margin-bottom: 1rem; 900 } 901 </style> 902 <style> 903 form input[type="text"], form input[type="email"], form textarea { 904 border: 1px solid #ccc; 905 padding: 0.5rem; 906 border-radius: 0.25rem; 907 width: 100%; 908 margin-top: 0.25rem; 909 } 910 form input[type="submit"] { 911 background-color: #2563eb; 912 color: white; 913 padding: 0.75rem 1.5rem; 914 border-radius: 0.375rem; 915 cursor: pointer; 916 font-weight: 500; 917 } 918 form input[type="submit"]:hover { 919 background-color: #1d4ed8; 920 } 921 .eb { 922 color: #dc2626; 923 margin-bottom: 1rem; 924 } 925 .p_trap { 926 display: none !important; 927 visibility: hidden; 928 opacity: 0; 929 position: absolute; 930 left: -9999px; 931 top: -9999px; 932 } 933 body { 934 overflow-x: hidden; 935 } 936 </style> 937 <meta property="fb:page_id" content="176909722351736" /> <link rel="canonical" href="https://MiniWebtool.com/about/contact/" /> 938 <link rel="alternate" type="application/rss+xml" href="https://MiniWebtool.com/rss.xml" />
938<script>function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } var loadfed = false; /* Shared by inline locale templates and the external English UI bundle. */ 939(function (w, d) { 940 if (w.mwtDeferWork) return; 941 var queue = [], scheduled = false; 942 function schedule() { 943 if (scheduled || !queue.length || d.hidden) return; 944 scheduled = true; 945 var afterFrame = function () { 946 // A timer inside rAF lets the browser paint before nonessential work. 947 w.setTimeout(function () { 948 if (d.hidden) { scheduled = false; return; } 949 var run = function () { 950 scheduled = false; 951 if (d.hidden) return; 952 var job = queue.shift(); 953 try { if (job) job(); } 954 catch (error) { if (w.console) w.console.error('Deferred page initialization failed', error); } 955 schedule(); 956 }; 957 if (w.requestIdleCallback) w.requestIdleCallback(run, { timeout: 500 }); 958 else run(); 959 }, 0); 960 }; 961 if (w.requestAnimationFrame) w.requestAnimationFrame(afterFrame); 962 else w.setTimeout(afterFrame, 0); 963 } 964 w.mwtDeferWork = function (job) { queue.push(job); schedule(); }; 965 d.addEventListener('visibilitychange', schedule); 966})(window, document); 967 968function loadf() { if(!loadfed ) { loadfed = true; 969try { loadcss(); } catch (e) {} try { setCookie("loadoed", "1", 1); } catch (e) {} } } if (typeof window.mwtResultFade === 'undefined' && /(?:^|;\s*)formsubmit=1(?:;|$)/.test(document.cookie)) { window.mwtResultFade = 1; var mwtFadeStyle = document.createElement('style'); mwtFadeStyle.textContent = '@keyframes mwtResultFade{from{opacity:0}to{opacity:1}}#calculatorresult{animation:mwtResultFade .3s ease}'; document.head.appendChild(mwtFadeStyle); setTimeout(function () { var mwtR = document.getElementById('calculatorresult');
969 if (mwtR) { mwtR.style.animation = 'none'; } }, 1200); document.addEventListener('DOMContentLoaded', function () { try { var mwtRS = document.getElementById('calculatorresult'); if (mwtRS) { var mwtAdSel = '[data-desktop],[data-mobile],[data-zd],[data-zm],[data-fuse],ins.adsbygoogle'; var mwtY = function () { return window.pageYOffset || document.documentElement.scrollTop || 0; }; var mwtAdAbove = function (res) { var base = res.getBoundingClientRect().top + mwtY(); var n = res, best = null; while (n && n !== document.body && !best) { for (var p = n.previousElementSibling; p && !best; p = p.previousElementSibling) { var list = []; if (p.matches && p.matches(mwtAdSel)) list.push(p); if (p.querySelectorAll) list = list.concat(Array.prototype.slice.call(p.querySelectorAll(mwtAdSel))); for (var i = list.length - 1; i >= 0; i--) { var r = list[i].getBoundingClientRect(); if (!r.width && !r.height) continue; var t = r.top + mwtY(); if (t <= base + 2 && base - t <= 1200) best = list[i]; break; } } n = n.parentElement; } return best; }; var mwtChrome = function () { var b = 0, ids = ['dSpace', 'topbar', 'firstbar', 'secondbar']; for (var i = 0; i < ids.length; i++) { var e = document.getElementById(ids[i]); if (!e) continue; var st = window.getComputedStyle(e); if (st.position !== 'fixed' && st.position !== 'sticky') continue; if (st.display === 'none' || st.visibility === 'hidden') continue; var r = e.getBoundingClientRect(); if (r.height > 0 && r.top < 300 && r.bottom > b) b = r.bottom; } return b; }; var mwtEl = mwtAdAbove(mwtRS) || mwtRS; var mwtTop = mwtEl.getBoundingClientRect().top + mwtY() - (mwtChrome() + 8); window.scrollTo(0, mwtTop > 0 ? mwtTop : 0); } } catch (e) {} try { setCookie('formsubmit', '0', 1); } catch (e) {} }); } if (typeof window.mwtEnsureFuse === 'undefined') { window.mwtEnsureFuse = 1; (function () { var EV = ['pointerdown', 'touchstart', 'mousemove', 'keydown', 'wheel', 'click']; function go() { try { loadf(); } catch (e) {} } function fire() { for (var i = 0; i < EV.length; i++) { window.removeEventListener(EV[i], fire, true); } go(); } function start() { if (/(?:^|;\s*)loadoed=1(?:;|$)/.test(document.cookie)) { go(); return; } for (var i = 0; i < EV.length; i++) { window.addEventListener(EV[i], fire, { passive: true, capture: true }); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); } })(); } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); } } return ""; } var imgloaded = false; function showVisible() { if(!imgloaded){ for (let img of document.querySelectorAll('img')) { let realSrc = img.dataset.src; if (!realSrc) continue; img.src = realSrc; img.dataset.src = ''; } } imgloaded=true; } function updatePlaceholder() { if (window.innerWidth <= 993) { let divs = document.querySelectorAll('div[data-mobile]'); divs.forEach(div => { let mobileValue = div.getAttribute('data-mobile'); div.removeAttribute('data-mobile'); div.setAttribute('data-fuse', mobileValue); }); } else { let divs = document.querySelectorAll('div[data-desktop]'); divs.forEach(div => { let desktopValue = div.getAttribute('data-desktop'); div.removeAttribute('data-desktop'); div.setAttribute('data-fuse', desktopValue); }); } } </script>
969
969<script type="application/ld+json">{"@context": "https://schema.org", "@graph": [{"@type": "ContactPage", "@id": "https://miniwebtool.com/about/contact/#contactpage", "url": "https://miniwebtool.com/about/contact/", "name": "About Us & Contact - MiniWebtool.com", "about": {"@id": "https://miniwebtool.com/#organization"}}, {"@type": "Organization", "@id": "https://miniwebtool.com/#organization", "name": "MiniWebtool", "url": "https://miniwebtool.com/", "logo": {"@type": "ImageObject", "url": "https://miniwebtool.com/apple-touch-icon.png"}, "sameAs": ["https://www.facebook.com/miniwebtool", "https://www.youtube.com/@miniwebtool-official", "https://www.pinterest.com/miniwebtool/", "https://stripe.com/@miniwebtool"]}]}</script>
969
969<script type="speculationrules"> 970 { 971 "prerender": [ 972 { 973 "where": { 974 "and": [ 975 { "href_matches": "/*" } 976 ] 977 }, 978 "eagerness": "moderate" 979 } 980 ] 981 } 982 </script>
982<script> 983(function () { 984 try { 985 if (/(?:^|;\s*)mwt_cc=/.test(document.cookie)) { return; } 986 var v = 'c' + Date.now().toString(36) + Math.random().toString(36).slice(2, 10); 987 var c = 'mwt_cc=' + v + '; path=/; max-age=31536000; samesite=Lax'; 988 if (location.protocol === 'https:') { c += '; secure'; } 989 if (/(^|\.)miniwebtool\.com$/.test(location.hostname)) { c += '; domain=.miniwebtool.com'; } 990 document.cookie = c; 991 } catch (e) {} 992})(); 993</script>
993 994<style type="text/css">@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/greek-ext/wght/normal.woff2);unicode-range:U+1F00-1FFF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:400;src:url(/cf-fonts/v/inter/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/greek-ext/wght/normal.woff2);unicode-range:U+1F00-1FFF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:500;src:url(/cf-fonts/v/inter/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/cyrillic-ext/wght/normal.woff2);
994unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/greek-ext/wght/normal.woff2);unicode-range:U+1F00-1FFF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:600;src:url(/cf-fonts/v/inter/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/greek-ext/wght/normal.woff2);unicode-range:U+1F00-1FFF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'Inter';font-style:normal;font-weight:700;src:url(/cf-fonts/v/inter/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin/wght/normal.woff2);
994unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;src:url(/cf-fonts/v/bricolage-grotesque/5.2.10/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:400;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/cyrillic-ext/wght/normal.woff2);
994unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/greek/wght/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:optional;}@font-face {font-family:'JetBrains Mono';font-style:normal;font-weight:500;src:url(/cf-fonts/v/jetbrains-mono/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:optional;}</style> 995<meta name="theme-color" content="#ffffff"> 996<style id="mwt-theme-v3"> 997:root { 998 --mwt-bg: #f5f5f1; 999 --mwt-grid-line: rgba(28, 27, 46, 0.045); 1000 --mwt-surface: #ffffff; 1001 --mwt-surface-2: #f7f6fb; 1002 --mwt-text: #1c1b2e; 1003 --mwt-muted: #5b5972; 1004 --mwt-border: #e4e2ee; 1005 --mwt-border-strong: #cfccdf; 1006 --mwt-shadow: 0 1px 2px rgba(25, 24, 49, 0.05), 0 8px 24px rgba(25, 24, 49, 0.07); 1007 --mwt-shadow-pop: 0 12px 32px rgba(25, 24, 49, 0.16); 1008 --mwt-radius: 14px; 1009 --mwt-accent: #5a45e6; 1010 --mwt-accent-hover: #4836c4; 1011 --mwt-accent-soft: #edebfc; 1012 --mwt-accent-text: #4332bd; 1013 --mwt-on-accent: #ffffff; 1014 --mwt-jade: #0e9f6e; 1015 --mwt-jade-deep: #0b7c57; 1016 --mwt-jade-soft: #e3f6ee; 1017 --mwt-jade-border: #b5e6d2; 1018 --mwt-amber: #a34b07; /* was #b45309: 4.46:1 on --mwt-amber-soft, under AA 4.5 */ 1019 --mwt-amber-soft: #fdf0dc; 1020 --mwt-header: #1a1930; 1021 --mwt-header-2: #2a2754; 1022 --mwt-on-header: #f0effa; 1023 --mwt-header-pill: rgba(255, 255, 255, 0.10); 1024 --mwt-header-pill-hover: rgba(255, 255, 255, 0.18); 1025 --mwt-link: #4836c4; 1026 --mwt-display-font: "Bricolage Grotesque", "Segoe UI", "PingFang SC", "Hiragino Sans", "Microsoft YaHei", Meiryo, "Malgun Gothic", Arial, sans-serif; 1027 /* å ¨ç«ä¸ä¸ªåæçå¯ä¸æ¥æºãå·¥å ·é¡µä¸å¾ä¸è®¸èªå·±åè¯·æ± Google Fonts ââ 1028 å° 2026-08 为æ¢å ¨ç«æäº 75 ç§åæï¼æ¢ä¸ä¸ªå·¥å ·å°±éä¸ä¸å¥ï¼åä½ç¼ååºæ¬ä¸å½ä¸ã 1029 Inter è¦ç Latin+Greek+Cyrillicï¼ru ç«åä¸ä¸ªæä»¶ï¼ï¼ä¸å¸¦ tabular figuresï¼ 1030 计ç®å¨çæ°ååæè½å¯¹é½ãCJK/æ³°æä¸å¾èµ°ç³»ç»æ ï¼ä¸å è½½ webfontã */ 1031 --mwt-font: "Inter", system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans", "Microsoft YaHei", Meiryo, "Malgun Gothic", "Noto Sans Thai", Arial, sans-serif; 1032 --mwt-mono-font: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; 1033 --mwt-btn-primary: var(--mwt-accent); 1034 --mwt-btn-primary-hover: var(--mwt-accent-hover); 1035 --mwt-btn-secondary: #56527a; 1036 --mwt-btn-secondary-hover: #3f3c5e; 1037 --mwt-btn-ring: rgba(90, 69, 230, 0.30); 1038 --mwt-notice-overlay: rgba(16, 15, 33, 0.72); 1039 color-scheme: light; 1040} 1041 1042/* ---- canvas ---- */ 1043html { background-color: var(--mwt-bg); border-bottom: 0; } 1044body, .w3-main { 1045 background-color: var(--mwt-bg) !important; 1046 background-image: 1047 linear-gradient(var(--mwt-grid-line) 1px, transparent 1px), 1048 linear-gradient(90deg, var(--mwt-grid-line) 1px, transparent 1px); 1049 background-size: 32px 32px; 1050 color: var(--mwt-text); 1051} 1052@media screen and (max-width: 993px) { body { background-color: var(--mwt-bg) !important; } } 1053::selection { background: var(--mwt-accent-soft); color: var(--mwt-accent-text); } 1054* { scrollbar-width: thin; scrollbar-color: var(--mwt-border-strong) transparent; } 1055::-webkit-scrollbar { width: 10px; height: 10px; } 1056::-webkit-scrollbar-thumb { background: var(--mwt-border-strong); border-radius: 8px; } 1057::-webkit-scrollbar-track { background: transparent; } 1058a { color: var(--mwt-link); } 1059hr { border-top: 1px solid var(--mwt-border); } 1060h1, h2, h3, h4, .t2, .f1, .f2, .f3 { 1061 font-family: var(--mwt-display-font); 1062 letter-spacing: -0.015em; 1063 color: var(--mwt-text); 1064} 1065h1#calculatorstart { line-height: 1.25; } 1066 1067/* ---- header: first bar ---- */ 1068#topbar { background: var(--mwt-surface); border-bottom: 1px solid var(--mwt-border); } 1069#firstbar, #firstbar .w3-white, #firstbar .w3-bar { background-color: var(--mwt-surface) !important; color: var(--mwt-text) !important; } 1070#firstbar .w3-wide { 1071 font-family: var(--mwt-display-font); 1072 letter-spacing: 0.01em !important; 1073 font-weight: 600; 1074 font-size: 0.92em; 1075} 1076#firsttitle { display: flex; align-items: center; justify-content: flex-end; gap: 4px; } 1077#firsttitle .w3-margin-top { margin-top: 0 !important; } 1078#firsttitle .w3-bar { display: flex; align-items: center; } 1079.menu-icon { color: var(--mwt-text) !important; } 1080#dSpace { background-color: var(--mwt-bg) !important; } 1081#bc { background: var(--mwt-surface-2) !important; border-bottom: 1px solid var(--mwt-border) !important; } 1082 1083/* new inline-SVG logo replaces the legacy base64 PNG */ 1084#i1n { background: none !important; display: flex !important; align-items: center; width: 180px; height: 32px; }
1085#i1n svg { display: block; width: 180px; height: 32px; } 1086 1087/* ---- header: second bar ---- */ 1088#secondbar, #secondbar.w3-black { 1089 background-image: linear-gradient(100deg, var(--mwt-header) 0%, var(--mwt-header-2) 100%) !important; 1090 background-color: var(--mwt-header) !important; 1091 border-bottom: 1px solid rgba(255, 255, 255, 0.06); 1092} 1093#secondbar .w3-black { background-color: transparent !important; } 1094#secondbar a.w3-button, #secondbar button.w3-button { 1095 color: var(--mwt-on-header) !important; 1096 font-weight: 500; 1097} 1098#navbutton a.w3-green, #navbutton a.w3-button { 1099 background-color: var(--mwt-header-pill) !important; 1100 color: var(--mwt-on-header) !important; 1101} 1102.search-box { 1103 background-color: rgba(255, 255, 255, 0.10) !important; 1104 border: 1.5px solid rgba(255, 255, 255, 0.22) !important; 1105 color: #ffffff !important; 1106 transition: border-color 0.2s ease, background-color 0.2s ease; 1107} 1108.search-box::placeholder { color: rgba(255, 255, 255, 0.55); } 1109.search-box:focus { 1110 border-color: var(--mwt-accent) !important; 1111 background-color: rgba(255, 255, 255, 0.16) !important; 1112 box-shadow: 0 0 0 3px var(--mwt-btn-ring); 1113} 1114.search-icon { color: rgba(255, 255, 255, 0.85) !important; } 1115#suggestions { 1116 background-color: var(--mwt-surface) !important; 1117 border: 1px solid var(--mwt-border) !important; 1118 box-shadow: var(--mwt-shadow-pop); 1119} 1120#suggestions div { color: var(--mwt-text) !important; } 1121#suggestions div:hover { background-color: var(--mwt-accent-soft) !important; color: var(--mwt-accent-text) !important; } 1122#secondbar #suggestions .suggestion-item.highlighted { background: var(--mwt-accent-soft) !important; color: var(--mwt-accent-text) !important; } 1123 1124/* ---- dropdowns / popovers ---- */ 1125.w3-dropdown-content { 1126 background-color: var(--mwt-surface) !important; 1127 color: var(--mwt-text) !important; 1128 border: 1px solid var(--mwt-border) !important; 1129 border-radius: 12px; 1130 box-shadow: var(--mwt-shadow-pop) !important; 1131 overflow: hidden; 1132 padding: 4px !important; 1133} 1134.w3-dropdown-content a.w3-button, .w3-dropdown-content a.w3-bar-item, .w3-dropdown-content .w3-black { 1135 background-color: transparent !important; 1136 color: var(--mwt-text) !important; 1137 border-radius: 8px; 1138} 1139#secondbar .w3-dropdown-content a, #secondbar .w3-dropdown-content .w3-bar-item.w3-button { color: var(--mwt-text) !important; } 1140.w3-dropdown-content a.w3-button:hover, .w3-dropdown-content a.w3-bar-item:hover, 1141#secondbar .w3-dropdown-content a:hover, #secondbar .w3-dropdown-content .w3-bar-item.w3-button:hover { 1142 background-color: var(--mwt-accent-soft) !important; 1143 color: var(--mwt-accent-text) !important; 1144} 1145.category-menu { background-color: var(--mwt-surface) !important; border-bottom: 1px solid var(--mwt-border); box-shadow: var(--mwt-shadow-pop); } 1146.category-menu a { color: var(--mwt-text) !important; } 1147.category-menu a:hover { background-color: var(--mwt-accent-soft) !important; } 1148 1149/* ---- sidebars ---- */ 1150#sidebar1 { background: var(--mwt-surface); border: 1px solid var(--mwt-border); } 1151#sidebar1 h2 { font-family: var(--mwt-display-font); } 1152#sidebar, .w3-sidebar { background-color: transparent !important; } 1153#sidebar a.w3-button, .w3-sidebar a.w3-button { 1154 color: var(--mwt-text) !important; 1155 background-color: transparent !important; 1156 border-radius: 9px; 1157 transition: background-color 0.15s ease, color 0.15s ease; 1158} 1159#sidebar a.w3-button:hover, .w3-sidebar a.w3-button:hover { 1160 background-color: var(--mwt-accent-soft) !important; 1161 color: var(--mwt-accent-text) !important; 1162 box-shadow: none; 1163} 1164.tools { 1165 background-color: var(--mwt-surface-2) !important; 1166 color: var(--mwt-text) !important; 1167 border: 1px solid var(--mwt-border) !important; 1168 border-radius: 10px; 1169 margin-bottom: 6px; 1170 font-weight: 600; 1171} 1172.tools:hover, .tools.activetool { background-color: var(--mwt-accent-soft) !important; color: var(--mwt-accent-text) !important; } 1173.panel { background-color: transparent !important; color: var(--mwt-text) !important; } 1174.reference { color: var(--mwt-muted) !important; } 1175/* link colour alone is only 1.2:1 against this muted body text */ 1176.reference p a { text-decoration: underline; } 1177 1178/* right-side card: keep triggers quiet so content stays the focus */ 1179.linkto:after, .activelinkto:after { font-weight: 400; } 1180 1181/* ---- main content ---- */ 1182.maincontent { 1183 background-color: var(--mwt-surface) !important; 1184 border: 1px solid var(--mwt-border); 1185 border-radius: var(--mwt-radius); 1186 box-shadow: var(--mwt-shadow); 1187} 1188 1189/* form card */ 1190#c1 .ht, #c1 h2 { color: var(--mwt-text); } 1191.nt { color: var(--mwt-muted) !important; } 1192
1193/* inputs */ 1194:where(input[type=number], input[type=text], select, textarea) { 1195 background-color: var(--mwt-surface) !important; 1196 color: var(--mwt-text) !important; 1197 border: 1px solid var(--mwt-border-strong) !important; 1198 border-radius: 10px !important; 1199 box-shadow: none !important; 1200 transition: border-color 0.15s ease, box-shadow 0.15s ease; 1201} 1202input[type=number]:focus, input[type=text]:focus, select:focus, textarea:focus { 1203 outline: none; 1204 border-color: var(--mwt-accent) !important; 1205 box-shadow: 0 0 0 3px var(--mwt-btn-ring) !important; 1206} 1207.w3-select, .w3-select:hover, .w3-select:focus { background-color: var(--mwt-surface); color: var(--mwt-text); } 1208.w3-input { background-color: var(--mwt-surface); color: var(--mwt-text); border-bottom: 1px solid var(--mwt-border-strong); } 1209#send-feedback textarea, #share-result textarea, #linkto textarea, #mytoolbox textarea, #surveystepform textarea { 1210 background-color: var(--mwt-surface) !important; 1211 color: var(--mwt-text) !important; 1212 border: 1px solid var(--mwt-border-strong) !important; 1213 border-radius: 10px; 1214} 1215.w3-check, .w3-radio, input[type=checkbox], input[type=radio], input[type=range] { accent-color: var(--mwt-accent); } 1216 1217/* ---- buttons ---- */ 1218button, input[type=submit], .w3-btn, .surveystep.finish { 1219 background-color: var(--mwt-btn-primary); 1220 color: var(--mwt-on-accent); 1221 border-radius: 10px; 1222 font-weight: 600; 1223 transition: background-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease; 1224} 1225button:hover, input[type=submit]:hover { background-color: var(--mwt-btn-primary-hover); opacity: 1; } 1226.w3-btn:hover { box-shadow: 0 6px 16px var(--mwt-btn-ring); transform: translateY(-1px); } 1227.w3-btn:active { transform: translateY(0); } 1228button:focus-visible, input[type=submit]:focus-visible, .w3-btn:focus-visible, .w3-button:focus-visible { 1229 outline: none; 1230 box-shadow: 0 0 0 3px var(--mwt-btn-ring); 1231} 1232.w3-green, .w3-hover-green:hover { background-color: var(--mwt-btn-primary) !important; color: var(--mwt-on-accent) !important; } 1233.w3-teal { background-color: var(--mwt-btn-secondary) !important; } 1234.w3-btn.w3-white, .w3-button.w3-white, button.w3-white { 1235 background-color: var(--mwt-surface) !important; 1236 color: var(--mwt-accent-text) !important; 1237 border: 1px solid var(--mwt-border-strong) !important; 1238} 1239.w3-btn.w3-white:hover, .w3-button.w3-white:hover { 1240 border-color: var(--mwt-accent) !important; 1241 background-color: var(--mwt-accent-soft) !important; 1242} 1243.w3-border-red { border-color: var(--mwt-border-strong) !important; } 1244.w3-btn .fa, .w3-button .fa, button .fa { color: inherit !important; } 1245.w3-btn svg, .w3-button svg, button svg { fill: currentColor; } 1246.bigbtn { border: 1px solid var(--mwt-border-strong) !important; background-color: var(--mwt-surface-2) !important; color: var(--mwt-text) !important; } 1247.w3-button:hover { color: var(--mwt-accent-text) !important; background-color: var(--mwt-accent-soft) !important; } 1248.w3-custom-banner { background-color: var(--mwt-accent-soft); border-radius: 12px; } 1249.w3-custom-banner-text { color: var(--mwt-text); } 1250.w3-custom-button { background-color: var(--mwt-accent); color: var(--mwt-on-accent); } 1251.w3-custom-button:hover { background-color: var(--mwt-accent-hover); } 1252 1253/* share circles: unified style instead of legacy brand colors */ 1254.shareresult, .surveyshareresult { 1255 background: var(--mwt-accent-soft) !important; 1256 color: var(--mwt-accent-text) !important; 1257 border: 1px solid transparent; 1258 transition: background-color 0.15s ease, color 0.15s ease, transform 0.12s ease; 1259} 1260.shareresult:hover, .surveyshareresult:hover { 1261 background: var(--mwt-accent) !important; 1262 color: var(--mwt-on-accent) !important; 1263 opacity: 1; 1264 transform: translateY(-2px); 1265} 1266#share-result a, #surveyshare-buttons a { color: var(--mwt-accent-text) !important; } 1267#share-result a:hover, #surveyshare-buttons a:hover { color: var(--mwt-on-accent) !important; } 1268 1269/* ---- results: the payoff moment gets the jade accent ---- */ 1270.r1, .r3 { 1271 background: var(--mwt-jade-soft); 1272 border: 1px solid var(--mwt-jade-border) !important; 1273 border-radius: 12px; 1274 color: var(--mwt-text); 1275 box-shadow: none !important; 1276} 1277.r1 { font-family: var(--mwt-display-font); font-weight: 700; } 1278.highlight { color: var(--mwt-jade-deep); } 1279 1280/* ---- tables ---- */ 1281.dt, .st { border: 1px solid var(--mwt-border) !important; border-radius: 12px; overflow: hidden; box-shadow: none !important; } 1282.dt th, .st th { background: var(--mwt-accent-soft) !important; color: var(--mwt-accent-text) !important; border-bottom: 1px solid var(--mwt-border); } 1283.dt td { border-bottom: 1px solid var(--mwt-border); } 1284tr.tr1 { background: var(--mwt-surface-2) !important; } 1285tr.tr2 { background: var(--mwt-surface) !important; } 1286table { color: var(--mwt-text); } 1287.zl th, .m2 { background: var(--mwt-surface-2); border-bottom: 1px solid var(--mwt-border); } 1288.z6 { background: var(--mwt-surface-2); border-bottom: 1px solid var(--mwt-border); } 1289.zf, .zfo, .zl, .c2, .z4, .z5 { border-color: var(--mwt-border); } 1290.zft { background: var(--mwt-surface-2); } 1291.m2 li { border-right: 1px solid var(--mwt-border); } 1292.m2 li a { color: var(--mwt-muted); } 1293.m2 a.on:link, .m2 a.on:visited, .m2 a:hover, .m2 a:active { background: var(--mwt-accent-soft); color: var(--mwt-accent-text); } 1294 1295/* ---- badges ---- */ 1296.featured-badge { background-color: var(--mwt-amber-soft); color: var(--mwt-amber); border-radius: 999px; font-weight: 600; } 1297.badge-new { background-color: var(--mwt-accent); color: var(--mwt-on-accent); } 1298.badge-featured { background-color: var(--mwt-amber); color: #ffffff; } 1299 1300/* ---- footer ---- */ 1301footer.w3-panel, footer.w3-light-grey, #footer { 1302 background-color: transparent !important; 1303 color: var(--mwt-muted) !important; 1304 box-shadow: none !important; 1305 border: 0; 1306 border-top: 1px solid var(--mwt-border); 1307 border-radius: 0; 1308 opacity: 1 !important; 1309} 1310footer a { color: var(--mwt-muted) !important; } 1311footer a:hover { color: var(--mwt-accent-text) !important; } 1312 1313/* ---- misc legacy surfaces ---- */ 1314.w3-light-grey { background-color: var(--mwt-surface-2) !important; color: var(--mwt-text) !important; } 1315.w3-white, .w3-hover-white:hover { background-color: var(--mwt-surface) !important; color: var(--mwt-text) !important; } 1316.content-section { color: var(--mwt-text); } 1317.surveymodal-content { background-color: var(--mwt-surface); color: var(--mwt-text); border-radius: var(--mwt-radius); } 1318.surveymodal-body { background-color: var(--mwt-surface) !important; color: var(--mwt-text) !important; } 1319.surveystepcontainer { background-color: var(--mwt-surface); } 1320.loaderpdf { border-color: var(--mwt-surface-2); border-top-color: var(--mwt-accent); } 1321.sliderimg, .surveyslider { background: var(--mwt-border-strong); border-radius: 999px; } 1322.sliderimg::-webkit-slider-thumb { background: var(--mwt-accent); border-radius: 50%; } 1323.sliderimg::-moz-range-thumb { background: var(--mwt-accent); } 1324 1325/* dark mode is retired: hide the legacy JS-injected toggle */ 1326#darkmode { display: none !important; } 1327 1328/* ---- share menu: text-only entries, consistent alignment ---- */ 1329#secondbar .w3-dropdown-content i.fa { display: none !important; } 1330#secondbar .w3-dropdown-content a.w3-bar-item { display: block; } 1331 1332/* ---- extra glyphs for result share circles (FA 4.3 webfont already loaded) ---- */ 1333.fa-mwt-reddit:before { content: "\f1a1"; } 1334.fa-mwt-send:before { content: "\f1d8"; } 1335.fa-mwt-link:before { content: "\f0c1"; } 1336.fa-mwt-check:before { content: "\f00c"; } 1337.shareresult.mwt-copied { background: var(--mwt-jade) !important; color: #ffffff !important; } 1338 1339/* ---- related tools: contextual card at the top of the sidebar (tool pages) ---- */ 1340#side-related { 1341 margin: 12px 8px 16px; 1342 padding: 10px 8px 8px;
1343 background: linear-gradient(180deg, rgba(90, 69, 230, 0.07), rgba(90, 69, 230, 0.02)); 1344 border: 1px solid rgba(90, 69, 230, 0.14); 1345 border-radius: 12px; 1346} 1347.mwt-rel-eyebrow, #mwt-rel-panel .mwt-rel-title { 1348 font-family: var(--mwt-display-font); 1349 font-size: 11px; 1350 font-weight: 800; 1351 letter-spacing: 0.09em; 1352 text-transform: uppercase; 1353 color: var(--mwt-accent-text); 1354} 1355.mwt-rel-eyebrow { margin: 2px 8px 8px; } 1356#sidebar1 a.mwt-rel-current { 1357 display: flex !important; 1358 align-items: center; 1359 gap: 9px; 1360 white-space: normal; 1361 overflow-wrap: anywhere; 1362 background: var(--mwt-surface) !important; 1363 border: 1px solid rgba(90, 69, 230, 0.22); 1364 border-radius: 10px; 1365 font-family: var(--mwt-display-font); 1366 font-weight: 700; 1367 color: var(--mwt-text) !important; 1368 box-shadow: 0 1px 2px rgba(25, 24, 49, 0.06); 1369 margin-bottom: 4px; 1370} 1371#sidebar1 a.mwt-rel-current:hover { 1372 background: var(--mwt-surface) !important; 1373 color: var(--mwt-text) !important; 1374} 1375#sidebar1 a.mwt-rel-current::before { 1376 content: ""; 1377 flex: 0 0 auto; 1378 width: 9px; 1379 height: 9px; 1380 border-radius: 3px; 1381 background: var(--mwt-jade); 1382} 1383#side-related .mwt-rel-list a { 1384 padding: 8px 10px !important; 1385 border-radius: 9px; 1386 white-space: normal; 1387 overflow-wrap: anywhere; 1388} 1389@media screen and (max-width: 993px) { #side-related { display: none; } } 1390 1391/* ---- guides: own card above the related-tools card (articles, not tools) ---- */ 1392#side-guides { 1393 margin: 12px 8px 0; 1394 padding: 10px 8px 8px; 1395 background: linear-gradient(180deg, rgba(16, 141, 106, 0.08), rgba(16, 141, 106, 0.02)); 1396 border: 1px solid rgba(16, 141, 106, 0.18); 1397 border-radius: 12px; 1398} 1399#side-guides .mwt-guide-eyebrow { 1400 font-family: var(--mwt-display-font); 1401 font-size: 11px; 1402 font-weight: 800; 1403 letter-spacing: 0.09em; 1404 text-transform: uppercase; 1405 color: var(--mwt-jade); 1406 margin: 2px 8px 8px; 1407} 1408#sidebar1 a.mwt-guide-item, #mwt-rel-panel a.mwt-guide-item { 1409 display: flex !important; 1410 align-items: flex-start; 1411 gap: 8px; 1412 padding: 8px 10px !important; 1413 border-radius: 9px; 1414 white-space: normal; 1415 overflow-wrap: anywhere; 1416 background: var(--mwt-surface) !important; 1417 border: 1px solid rgba(16, 141, 106, 0.20); 1418 color: var(--mwt-text) !important; 1419 margin-bottom: 4px; 1420} 1421#sidebar1 a.mwt-guide-item:hover, #mwt-rel-panel a.mwt-guide-item:hover { 1422 border-color: var(--mwt-jade); 1423 color: var(--mwt-text) !important; 1424} 1425a.mwt-guide-item::before { 1426 content: ""; 1427 flex: 0 0 auto; 1428 width: 9px; 1429 height: 9px; 1430 margin-top: 5px; 1431 border-radius: 50%; 1432 background: var(--mwt-jade); 1433} 1434@media screen and (max-width: 993px) { #side-guides { display: none; } } 1435#mwt-rel-panel .mwt-guide-title { color: var(--mwt-jade); } 1436 1437/* ---- related tools: mobile top-bar toggle + slide-down menu ---- */ 1438#mwt-rel-btn { 1439 padding: 8px 10px !important; 1440 border-radius: 12px !important; 1441 background: var(--mwt-header-pill) !important; 1442 border: 1px solid rgba(255, 255, 255, 0.18); 1443 color: var(--mwt-on-header) !important; 1444 display: inline-flex; 1445 align-items: center; 1446} 1447#mwt-rel-btn svg { width: 18px !important; height: 18px !important; } 1448#mwt-rel-panel { 1449 display: none; 1450 position: absolute; 1451 top: 100%; 1452 left: 0; 1453 right: 0; 1454 background: var(--mwt-surface); 1455 border-bottom: 1px solid var(--mwt-border); 1456 border-radius: 0 0 var(--mwt-radius) var(--mwt-radius); 1457 box-shadow: var(--mwt-shadow-pop); 1458 padding: 4px 0 6px; 1459 max-height: 62vh; 1460 overflow-y: auto; 1461 overscroll-behavior: contain; 1462 -webkit-overflow-scrolling: touch; 1463} 1464#mwt-rel-panel.show { display: block; animation: mwtRelDown 0.22s ease; } 1465@keyframes mwtRelDown { 1466 from { opacity: 0; transform: translateY(-10px); } 1467 to { opacity: 1; transform: none; } 1468} 1469#mwt-rel-panel .mwt-rel-title { margin: 12px 18px 6px; } 1470#mwt-rel-panel a.w3-button { 1471 display: flex !important; 1472 align-items: center; 1473 justify-content: space-between; 1474 gap: 10px; 1475 width: 100%; 1476 box-sizing: border-box; 1477 text-align: left; 1478 white-space: normal; 1479 padding: 13px 18px !important; 1480 background: transparent !important; 1481 color: var(--mwt-text) !important; 1482 font-weight: 500; 1483 border-bottom: 1px solid var(--mwt-border); 1484 border-radius: 0; 1485} 1486#mwt-rel-panel a.w3-button:last-child { border-bottom: 0; } 1487#mwt-rel-panel a.w3-button::after {
1488 content: "\203A"; 1489 flex: 0 0 auto; 1490 color: var(--mwt-border-strong); 1491 font-size: 20px; 1492 line-height: 1; 1493} 1494#mwt-rel-panel a.w3-button:hover, #mwt-rel-panel a.w3-button:active { 1495 background: var(--mwt-accent-soft) !important; 1496 color: var(--mwt-accent-text) !important; 1497} 1498</style>
1499<script> 1500 1501(function () { 1502 try { localStorage.setItem('preferredpagemode', 'light'); } catch (e) {} 1503 1504 var LOGO = 1505 '<svg width="180" height="32" viewBox="0 0 180 32" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">' + 1506 '<defs><linearGradient id="mwt-lg" x1="0" y1="0" x2="1" y2="1">' + 1507 '<stop offset="0" stop-color="#6a55f0"/><stop offset="1" stop-color="#4836c4"/>' + 1508 '</linearGradient></defs>' + 1509 '<rect x="1" y="3" width="26" height="26" rx="7" fill="url(#mwt-lg)"/>' + 1510 '<rect x="6.5" y="8.5" width="6.5" height="6.5" rx="2" fill="#ffffff" opacity="0.95"/>' + 1511 '<rect x="15" y="8.5" width="6.5" height="6.5" rx="2" fill="#ffffff" opacity="0.55"/>' + 1512 '<rect x="6.5" y="17" width="6.5" height="6.5" rx="2" fill="#ffffff" opacity="0.55"/>' + 1513 '<rect x="15" y="17" width="6.5" height="6.5" rx="3.25" fill="#2fd39b"/>' + 1514 '<text x="33" y="23.5" font-family="\'Bricolage Grotesque\',\'Segoe UI\',Arial,sans-serif" font-size="20" font-weight="700" letter-spacing="-0.3">' + 1515 '<tspan fill="#1c1b2e">mini</tspan><tspan fill="#5a45e6">Webtool</tspan>' + 1516 '</text></svg>'; 1517 1518 function injectLogo() { 1519 var logo = document.getElementById('i1n'); 1520 if (logo) { 1521 if (!logo.querySelector('svg')) { logo.innerHTML = LOGO; } 1522 return true; 1523 } 1524 return false; 1525 } 1526 1527 (function early() { 1528 if (injectLogo() || document.readyState !== 'loading') { return; } 1529 requestAnimationFrame(early); 1530 })(); 1531 1532 if (document.readyState === 'loading') { 1533 document.addEventListener('DOMContentLoaded', injectLogo); 1534 } else { 1535 injectLogo(); 1536 } 1537})(); 1538</script>
vendor: 1 bytes, line 1538
1538
1539<script defer src="/js/mwt-share.v1.js?v=6ab370e1"></script>
vendor: 1 bytes, line 1539
1539
1540<script> 1541(function () { 1542 function setOpen(open) { 1543 var p = document.getElementById('mwt-rel-panel'); 1544 if (!p) { return; } 1545 p.classList.toggle('show', open); 1546 var b = document.getElementById('mwt-rel-btn'); 1547 if (b) { b.setAttribute('aria-expanded', open ? 'true' : 'false'); } 1548 } 1549 window.mwtToggleRelated = function () { 1550 var p = document.getElementById('mwt-rel-panel'); 1551 if (p) { setOpen(!p.classList.contains('show')); } 1552 }; 1553 document.addEventListener('click', function (e) { 1554 var p = document.getElementById('mwt-rel-panel'); 1555 if (!p || !p.classList.contains('show')) { return; } 1556 if (e.target.closest && (e.target.closest('#mwt-rel-panel') || e.target.closest('#mwt-rel-btn'))) { return; } 1557 setOpen(false); 1558 }); 1559 document.addEventListener('keydown', function (e) { 1560 if (e.key === 'Escape') { setOpen(false); } 1561 }); 1562})(); 1563</script>
1563 1564
1565<script> 1566(function () { 1567 try { 1568 var d = navigator.userAgentData, u = navigator.userAgent || ""; 1569 var chromium = (d && d.brands && d.brands.length) 1570 ? d.brands.some(function (b) { return b.brand === "Chromium"; }) 1571 : (/Chrome\/|Chromium\//.test(u) && !/Firefox|FxiOS/.test(u)); 1572 if (!chromium) { document.documentElement.className += " mwt-no-cws"; } 1573 } catch (e) {} 1574})(); 1575</script>
1575 1576<style>html.mwt-no-cws .mwt-ext-link, html.mwt-no-cws #chrome-extension-prompt { display: none !important; }</style> 1577 1578<style>#firsttitle .mwt-since { font-weight: 600; } 1579@media (max-width: 1200px) { #firsttitle .mwt-tagline-stat { display: none; } }</style> 1580 1581<style>.mwt-since-badge { 1582 display: inline-flex; 1583 align-items: center; 1584 gap: 5px; 1585 padding: 4px 10px; 1586 border-radius: 999px; 1587 background: #EDE9FE; 1588 border: 1px solid #DDD6FE; 1589 color: #4C1D95; 1590 font-size: 12px; 1591 font-weight: 700; 1592 line-height: 1; 1593 white-space: nowrap; 1594} 1595.mwt-since-badge svg { width: 13px; height: 13px; flex-shrink: 0; } 1596body.darkpagetheme .mwt-since-badge { background: #312E81; border-color: #4338CA; color: #E0E7FF; } 1597@media (max-width: 993px) { #firsttitle { display: flex; align-items: center; justify-content: flex-end; gap: 10px; } } 1598@media (max-width: 359px) { .mwt-since-badge { display: none; } }</style> 1599 1600 1601 1602<style id="mwt-featured-badge-tip-style">.mwt-featured-tool h1.print.mwt-featured-badge-ready::after{content:none}.mwt-featured-badge{display:inline-block;position:relative;vertical-align:middle;background:gold;color:#111;padding:2px 8px;border-radius:3px;font-size:.5em;line-height:1.4;margin-left:10px;white-space:nowrap;font-weight:600;cursor:help}.mwt-featured-badge:focus{outline:2px solid #1d4ed8;outline-offset:3px}.mwt-featured-tip{position:absolute;z-index:1000;top:calc(100% + 9px);left:50%;transform:translate(-50%,-3px);width:max-content;max-width:min(320px,80vw);padding:7px 10px;border-radius:6px;background:#111;color:#fff;font-size:.85rem;font-weight:500;line-height:1.35;letter-spacing:0;white-space:normal;box-shadow:0 4px 14px rgba(0,0,0,.28);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.mwt-featured-tip::before{content:"";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-bottom-color:#111}.mwt-featured-badge:hover .mwt-featured-tip,.mwt-featured-badge:focus .mwt-featured-tip{opacity:1;visibility:visible;transform:translate(-50%,0)}@media (prefers-reduced-motion:reduce){.mwt-featured-tip{transition:none}}</style></head> <body itemscope itemtype="http://schema.org/WebPage" class="mwt-noads"> <div id="dSpace"></div> <div id="topbar"> <div id="firstbar" class="w3-row flex-container w3-white w3-padding"> <div class="w3-quarter w3-white" style="padding-top:.5em;"><a href="/" id=i1n aria-label="MiniWebtool.com"></a></div> <div id="firsttitle" class="w3-right "> <div class="w3-bar w3-white"> <div class="w3-margin-top w3-margin-right w3-wide desktoponly no-wrap"><span class="mwt-since">Since 2010</span><span class="mwt-tagline-stat"> · Powering 2M+ tool runs every month</span></div> </div> <span class="mwt-since-badge mobileonly"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z" clip-rule="evenodd" /></svg>Since 2010</span> </div> </div> <div id="secondbar" class="flex-container w3-black w3-padding"> <div id="navbutton" class="flex-left w3-black desktoponly"> </div><div class="flex-center"><input type="text" class="search-box" id="searchInput" placeholder="Search 1,920+ tools..." autocomplete="off"><a href="javascript:void(0)" title="Search" onclick="doSearch()"><span class="search-icon"> 1603 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> 1604 <path fill-rule="evenodd" d="M10.5 3.75a6.75 6.75 0 1 0 0 13.5 6.75 6.75 0 0 0 0-13.5ZM2.25 10.5a8.25 8.25 0 1 1 14.59 5.28l4.69 4.69a.75.75 0 1 1-1.06 1.06l-4.69-4.69A8.25 8.25 0 0 1 2.25 10.5Z" clip-rule="evenodd" /> 1605 </svg> 1606 </span></a> <div id="suggestions" class="suggestions"></div> </div> <div class="flex-right w3-right"> <a href="https://chromewebstore.google.com/detail/miniwebtool/ecfilieagpfognifbnjagkcfpmffeelh" class="w3-bar-item w3-button w3-hover-green desktoponly mwt-ext-link" data-url="https://chromewebstore.google.com/detail/miniwebtool/ecfilieagpfognifbnjagkcfpmffeelh" data-title="Install MiniWebtool Chrome Extension" onclick="return openShareWindow(this, 1249, 625);" title="Install MiniWebtool Chrome Extension">Add to Chrome</a> <style> 1607.linkto:after { content: '\002B'; } 1608.activelinkto:after { content: '\2212'; } 1609 1610.mwt-tb-wrap { position: relative; display: inline-block; } 1611 1612.mwt-tb-trigger { 1613 display: inline-flex !important; 1614 align-items: center; 1615 gap: 6px; 1616 white-space: nowrap; 1617} 1618 1619.mwt-tb-trigger.linkto:after, 1620.mwt-tb-trigger.activelinkto:after {
1621 content: ''; 1622 margin: 0; 1623 float: none; 1624} 1625 1626.mwt-tb-badge { 1627 display: inline-flex; 1628 align-items: center; 1629 justify-content: center; 1630 min-width: 18px; 1631 height: 18px; 1632 padding: 0 5px; 1633 border-radius: 999px; 1634 background: linear-gradient(135deg, #7c4dff, #4a90e2); 1635 color: #fff; 1636 font-size: 11px; 1637 font-weight: 700; 1638 line-height: 1; 1639} 1640 1641.mwt-tb-panel { 1642 position: absolute; 1643 top: calc(100% + 10px); 1644 right: 0; 1645 z-index: 1200; 1646 width: 320px; 1647 max-width: calc(100vw - 24px); 1648 padding: 14px; 1649 text-align: left; 1650 background: var(--mwt-surface, #fff); 1651 color: var(--mwt-text, #0f172a); 1652 border: 1px solid var(--mwt-border, rgba(15, 23, 42, 0.1)); 1653 border-radius: 14px; 1654 box-shadow: 0 24px 48px -20px rgba(15, 23, 42, 0.45); 1655} 1656 1657.mwt-tb-panel #mytoollist ul { max-height: 260px; } 1658 1659 1660.mwt-tb-label { 1661 margin: 0 0 6px; 1662 font-size: 11px; 1663 letter-spacing: 0.08em; 1664 text-transform: uppercase; 1665 color: rgba(15, 23, 42, 0.5); 1666} 1667 1668.mwt-tb-panel textarea { 1669 width: 100%; 1670 height: 88px; 1671 padding: 8px 10px; 1672 box-sizing: border-box; 1673 border: 1px solid var(--mwt-border, rgba(15, 23, 42, 0.15)); 1674 border-radius: 10px; 1675 background: rgba(15, 23, 42, 0.02); 1676 color: var(--mwt-text, #0f172a); 1677 font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; 1678 font-size: 12px; 1679 resize: none; 1680} 1681 1682.mwt-tb-btn { 1683 display: block; 1684 width: 100%; 1685 margin-top: 8px; 1686 padding: 9px 12px; 1687 border: none; 1688 border-radius: 10px; 1689 background: linear-gradient(135deg, rgba(124, 77, 255, 0.95), rgba(74, 144, 226, 0.95)); 1690 color: #fff !important; 1691 font-size: 14px; 1692 font-weight: 600; 1693 text-align: center; 1694 text-decoration: none; 1695 cursor: pointer; 1696} 1697 1698 1699.mwt-topbar-pro { 1700 margin-left: 6px; 1701 border-radius: 8px; 1702 background: linear-gradient(135deg, #7c4dff, #4a90e2) !important; 1703 color: #fff !important; 1704 font-weight: 600; 1705} 1706 1707#secondbar .mwt-tb-wrap > .mwt-tb-trigger { 1708 gap: 8px; 1709 border: 1px solid rgba(255, 255, 255, 0.18); 1710 border-radius: 12px !important; 1711 background: rgba(124, 77, 255, 0.22) !important; 1712 color: #fff !important; 1713} 1714 1715#secondbar .mwt-tb-wrap > .mwt-tb-trigger:hover, 1716#secondbar .mwt-tb-wrap > .mwt-tb-trigger:focus-visible { 1717 background: rgba(124, 77, 255, 0.32) !important; 1718 color: #fff !important; 1719} 1720 1721.mwt-tb-empty { 1722 margin: 8px 0 0; 1723 font-size: 13px; 1724 line-height: 1.5; 1725 color: var(--mwt-muted, rgba(15, 23, 42, 0.6)); 1726} 1727 1728 1729#secondbar #mytoolbox a { 1730 color: var(--mwt-link, #4836c4) !important; 1731} 1732 1733#secondbar #mytoolbox a:hover { 1734 text-decoration: underline; 1735} 1736</style> 1737 1738<style> 1739 1740#mytoolbox ul { 1741 padding: 0; 1742 margin: 0; 1743} 1744#mytoolbox ul{max-height:300px; width:100%;} 1745#mytoolbox ul{overflow:hidden; overflow-y:auto; scrollbar-width: thin;} 1746 1747 1748#mytoolbox ul li { 1749 cursor: pointer; 1750 position: relative; 1751 padding: 10px 10px; 1752 list-style-type: none; 1753 background: transparent; 1754 border-bottom: 1px solid rgba(15, 23, 42, 0.06); 1755 transition: 0.2s; 1756 1757 -webkit-user-select: none; 1758 -moz-user-select: none; 1759 -ms-user-select: none; 1760 user-select: none; 1761} 1762 1763 1764#mytoolbox ul li:nth-child(odd) { 1765 background: rgba(15, 23, 42, 0.02); 1766} 1767 1768 1769#mytoolbox ul li:hover { 1770 background: rgba(124, 77, 255, 0.08); 1771} 1772 1773 1774/* Style the closetoolbox button */ 1775#mytoolbox .closetoolbox { 1776 position: absolute; 1777 right: 0; 1778 top: 0; 1779 padding: 6px 6px 6px 6px; 1780} 1781 1782#mytoolbox .closetoolbox:hover { 1783 background-color: rgba(239, 68, 68, 0.12); 1784 color: #ef4444; 1785} 1786 1787 1788 .onoffswitch { 1789 vertical-align: middle; 1790 1791 position: relative; width: 65px; 1792 -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; 1793 } 1794 .onoffswitch-checkbox { 1795 position: absolute; 1796 opacity: 0; 1797 pointer-events: none; 1798 } 1799 .onoffswitch-label { 1800 display: block; overflow: hidden; cursor: pointer; 1801 border: 2px solid #999999; border-radius: 20px; 1802 } 1803 .onoffswitch-inner { 1804 display: block; width: 200%; margin-left: -100%; 1805 transition: margin 0.3s ease-in 0s; 1806 } 1807 .onoffswitch-inner:before, .onoffswitch-inner:after { 1808 display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px; 1809 font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; 1810 box-sizing: border-box; 1811 } 1812 .onoffswitch-inner:before { 1813 content: "ON"; 1814 padding-left: 10px; 1815 background-color: #34A7C1; color: #FFFFFF; 1816 } 1817 .onoffswitch-inner:after {
1818 content: "OFF"; 1819 padding-right: 10px; 1820 background-color: #EEEEEE; color: #999999; 1821 text-align: right; 1822 } 1823 .onoffswitch-switch { 1824 display: block; width: 10px;height:10px; margin: 10px; 1825 background: #FFFFFF; 1826 position: absolute; top: 0; bottom: 0; 1827 right: 31px; 1828 border: 2px solid #999999; border-radius: 20px; 1829 transition: all 0.3s ease-in 0s; 1830 } 1831 .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { 1832 margin-left: 0; 1833 } 1834 .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { 1835 right: 0px; 1836 } 1837 .sliderWrapper{display: inline-block;margin:12px 12px 12px 12px;position:relative;} 1838 .sliderWrapper div{display: inline-block;line-height:60px;} 1839 1840 /* ---------- MiniWebtool friendly dialogs (modal + toast) ---------- */ 1841 .mwt-modal-backdrop{ 1842 position:fixed;inset:0;z-index:10000; 1843 background:rgba(15,23,42,.55); 1844 display:flex;align-items:center;justify-content:center; 1845 padding:20px; 1846 opacity:0;transition:opacity .18s ease; 1847 font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; 1848 color:#0f172a; 1849 } 1850 .mwt-modal-backdrop.on{opacity:1} 1851 .mwt-modal{ 1852 width:100%;max-width:420px;background:#fff;border-radius:16px; 1853 box-shadow:0 20px 60px -10px rgba(15,23,42,.35),0 8px 20px -8px rgba(15,23,42,.2); 1854 overflow:hidden;transform:translateY(8px) scale(.98); 1855 transition:transform .2s cubic-bezier(.2,.9,.3,1.2); 1856 } 1857 .mwt-modal-backdrop.on .mwt-modal{transform:translateY(0) scale(1)} 1858 .mwt-modal-head{ 1859 padding:22px 24px 4px;display:flex;align-items:center;gap:12px; 1860 } 1861 .mwt-modal-icon{ 1862 flex:0 0 40px;width:40px;height:40px;border-radius:50%; 1863 background:linear-gradient(135deg,#a78bfa,#6366f1); 1864 color:#fff;display:flex;align-items:center;justify-content:center; 1865 font-size:20px;font-weight:700; 1866 } 1867 .mwt-modal-title{ 1868 margin:0;font-size:17px;font-weight:700;color:#0f172a;letter-spacing:-.005em; 1869 } 1870 .mwt-modal-body{ 1871 padding:8px 24px 4px;color:#475569;font-size:14.5px;line-height:1.55; 1872 } 1873 .mwt-modal-body strong{color:#0f172a} 1874 .mwt-modal-foot{ 1875 padding:18px 20px 20px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap; 1876 } 1877 .mwt-modal-btn{ 1878 padding:10px 18px;border-radius:10px;font-weight:600;font-size:14px; 1879 text-decoration:none;cursor:pointer;border:0;line-height:1.2; 1880 transition:filter .12s,transform .12s,background .12s; 1881 } 1882 .mwt-modal-btn.primary{ 1883 background:linear-gradient(135deg,#6366f1,#7c4dff);color:#fff; 1884 box-shadow:0 4px 14px rgba(99,102,241,.3); 1885 } 1886 .mwt-modal-btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)} 1887 .mwt-modal-btn.ghost{background:#f1f5f9;color:#334155} 1888 .mwt-modal-btn.ghost:hover{background:#e2e8f0} 1889 .mwt-modal-close{ 1890 position:absolute;top:10px;right:12px;background:none;border:0; 1891 width:32px;height:32px;border-radius:8px;cursor:pointer; 1892 color:#556072;font-size:20px;line-height:1; 1893 } 1894 .mwt-modal-close:hover{background:#f1f5f9;color:#475569} 1895 .mwt-modal{position:relative} 1896 @media (max-width:480px){ 1897 .mwt-modal-head{padding:20px 20px 4px} 1898 .mwt-modal-body{padding:8px 20px 4px} 1899 .mwt-modal-foot{padding:16px 16px 18px} 1900 .mwt-modal-btn{flex:1;text-align:center} 1901 } 1902 1903 /* toast â non-blocking info */ 1904 .mwt-toast-wrap{ 1905 position:fixed;z-index:10001;left:50%;bottom:32px;transform:translateX(-50%); 1906 display:flex;flex-direction:column;gap:8px;pointer-events:none; 1907 } 1908 .mwt-toast{ 1909 background:#0f172a;color:#fff;padding:12px 18px;border-radius:10px; 1910 font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; 1911 box-shadow:0 8px 24px -4px rgba(15,23,42,.35); 1912 max-width:90vw;opacity:0;transform:translateY(12px); 1913 transition:opacity .2s,transform .2s;pointer-events:auto; 1914 } 1915 .mwt-toast.on{opacity:1;transform:translateY(0)} 1916 .mwt-toast .tick{color:#86efac;margin-right:8px;font-weight:700} 1917</style> 1918 1919<div class="mwt-tb-wrap desktoponly"> 1920<button type="button" onclick="linkto('mytoolbox')" class="w3-bar-item w3-button linkto mwt-tb-trigger" aria-haspopup="true" aria-controls="mytoolbox"> 1921<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="16" height="16" aria-hidden="true"><path d="M4 7h16v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7Zm5-4h6a2 2 0 0 1 2 2v1H7V5a2 2 0 0 1 2-2Z"/></svg> 1922My Toolbox<span id="mwt-tb-count" class="mwt-tb-badge w3-hide">0</span> 1923</button> 1924<div id="mytoolbox" class="w3-hide mwt-tb-panel"> 1925<p class="mwt-tb-label">My Toolbox</p> 1926 1927 1928
1929 1930<div id="mytoollist"> 1931<ul id="myUL"> 1932 1933</ul> 1934</div> 1935<p id="mwt-tb-empty" class="mwt-tb-empty">No saved tools yet.</p> 1936</div> 1937</div> 1938
1939<script> 1940 1941(function(){ 1942 if (window.mwtUpsellModal) return; 1943 var lastFocus = null; 1944 1945 function closeModal(el){ 1946 if (!el) return; 1947 el.classList.remove('on'); 1948 setTimeout(function(){ if (el.parentNode) el.parentNode.removeChild(el); }, 200); 1949 document.removeEventListener('keydown', el._esc); 1950 if (lastFocus && lastFocus.focus) { try { lastFocus.focus(); } catch(e){} } 1951 } 1952 1953 window.mwtUpsellModal = function(opts){ 1954 opts = opts || {}; 1955 if (window.mwtCloseToolbox) window.mwtCloseToolbox(); 1956 lastFocus = document.activeElement; 1957 var backdrop = document.createElement('div'); 1958 backdrop.className = 'mwt-modal-backdrop'; 1959 backdrop.setAttribute('role','dialog'); 1960 backdrop.setAttribute('aria-modal','true'); 1961 backdrop.setAttribute('aria-labelledby','mwt-modal-title'); 1962 backdrop.innerHTML = 1963 '<div class="mwt-modal">' + 1964 '<button class="mwt-modal-close" aria-label="Close">×</button>' + 1965 '<div class="mwt-modal-head">' + 1966 '<div class="mwt-modal-icon" aria-hidden="true">' + (opts.icon || 'â ') + '</div>' + 1967 '<h3 class="mwt-modal-title" id="mwt-modal-title"></h3>' + 1968 '</div>' + 1969 '<div class="mwt-modal-body"></div>' + 1970 '<div class="mwt-modal-foot">' + 1971 '<button type="button" class="mwt-modal-btn ghost" data-act="cancel"></button>' + 1972 '<a class="mwt-modal-btn primary" data-act="ok"></a>' + 1973 '</div>' + 1974 '</div>'; 1975 document.body.appendChild(backdrop); 1976 backdrop.querySelector('#mwt-modal-title').textContent = opts.title || ''; 1977 backdrop.querySelector('.mwt-modal-body').innerHTML = opts.message || ''; 1978 var cancelBtn = backdrop.querySelector('[data-act="cancel"]'); 1979 var okBtn = backdrop.querySelector('[data-act="ok"]'); 1980 cancelBtn.textContent = opts.cancelText || 'Maybe later'; 1981 okBtn.textContent = opts.primaryText || 'Upgrade'; 1982 okBtn.href = opts.primaryHref || '/premium-subscription/'; 1983 if (opts.primaryTarget) okBtn.target = opts.primaryTarget; 1984 if (opts.onPrimary) okBtn.addEventListener('click', function(ev){ opts.onPrimary(ev); }); 1985 1986 function done(){ closeModal(backdrop); } 1987 cancelBtn.addEventListener('click', done); 1988 backdrop.querySelector('.mwt-modal-close').addEventListener('click', done); 1989 backdrop.addEventListener('click', function(e){ if (e.target === backdrop) done(); }); 1990 backdrop._esc = function(e){ if (e.key === 'Escape') done(); }; 1991 document.addEventListener('keydown', backdrop._esc); 1992 1993 requestAnimationFrame(function(){ backdrop.classList.add('on'); }); 1994 setTimeout(function(){ try { okBtn.focus(); } catch(e){} }, 60); 1995 return backdrop; 1996 }; 1997 1998 window.mwtToast = function(message, opts){ 1999 opts = opts || {}; 2000 var wrap = document.querySelector('.mwt-toast-wrap'); 2001 if (!wrap){ 2002 wrap = document.createElement('div'); 2003 wrap.className = 'mwt-toast-wrap'; 2004 document.body.appendChild(wrap); 2005 } 2006 var t = document.createElement('div'); 2007 t.className = 'mwt-toast'; 2008 t.setAttribute('role','status'); 2009 t.innerHTML = (opts.tick !== false ? '<span class="tick">â</span>' : '') + message; 2010 wrap.appendChild(t); 2011 requestAnimationFrame(function(){ t.classList.add('on'); }); 2012 setTimeout(function(){ 2013 t.classList.remove('on'); 2014 setTimeout(function(){ if (t.parentNode) t.parentNode.removeChild(t); }, 220); 2015 }, opts.duration || 2400); 2016 }; 2017})(); 2018 2019function updatelocal() { 2020 var mytoollistElem = document.getElementById("mytoollist"); 2021 if (mytoollistElem) { 2022 localStorage.setItem("mytoollist", mytoollistElem.innerHTML); 2023 } 2024} 2025 2026function initializeToolbox() { 2027 var text = localStorage.getItem("mytoollist"); 2028 if (text !== null && text.toLowerCase().includes('miniwebtool')) { 2029 var mytoollistElem = document.getElementById("mytoollist"); 2030 if (mytoollistElem) { 2031 mytoollistElem.innerHTML = text; 2032 var closetoolbox = document.getElementsByClassName("closetoolbox"); 2033 for (var i = 0; i < closetoolbox.length; i++) { 2034 closetoolbox[i].onclick = function() { 2035 var div = this.parentElement; 2036 div.remove(); 2037 updatelocal(); 2038 } 2039 } 2040 } 2041 } 2042} 2043 2044function initializeAutomaticMode() { 2045initializeToolbox(); 2046mwtToolboxBadge(); 2047} 2048 2049 2050 2051function newElement() { 2052 2053 var i1 = document.getElementById("myUL").getElementsByTagName("li").length; 2054 if (i1>2) { 2055 mwtUpsellModal({
2056 icon: 'â ', 2057 title: "My Toolbox is full on Free", 2058 message: "Free accounts can keep <strong>3 favourites</strong> in My Toolbox. Upgrade to <strong>Pro</strong> or <strong>Premium</strong> to save as many as you like — plus Automatic Mode, which remembers every tool you use.", 2059 primaryText: "See plans", 2060 cancelText: "Not now", 2061 primaryHref: '/premium-subscription/?src=toolbox&from=_about/contact_' 2062 }); 2063 var cb = document.getElementById("myonoffswitch"); 2064 if (cb) cb.checked = false; 2065 setCookie('automaticmode', false, 365); 2066 return; 2067 } 2068 2069 var inputValue = '<a href="https://MiniWebtool.com//"></a>'; 2070 var ulcontent = document.getElementById("myUL").innerHTML; 2071 if (!ulcontent.toLowerCase().includes(inputValue.toLowerCase())){ 2072 var li = document.createElement("li"); 2073 li.innerHTML=inputValue; 2074 2075 document.getElementById("myUL").appendChild(li); 2076 2077 2078 2079 var span = document.createElement("SPAN"); 2080 var txt = document.createTextNode("\u00D7"); 2081 span.className = "closetoolbox"; 2082 span.title = "Remove the link"; 2083 span.appendChild(txt); 2084 li.appendChild(span); 2085 var closetoolbox = document.getElementsByClassName("closetoolbox"); 2086 var i; 2087 2088 for (i = 0; i < closetoolbox.length; i++) { 2089 closetoolbox[i].onclick = function() { 2090 var div = this.parentElement; 2091 div.remove(); 2092 updatelocal(); 2093 } 2094 } 2095 updatelocal(); 2096} 2097else{ 2098 if (!document.getElementById("myonoffswitch").checked){ 2099 mwtToast(" is already in your toolbox"); 2100 } 2101} 2102} 2103 2104 2105 2106function mytoolboxcheck() { 2107 2108 2109 2110 var checkBox = document.getElementById("myonoffswitch"); 2111 2112 2113 mwtUpsellModal({ 2114 icon: 'â¡', 2115 title: "Automatic Mode is a paid feature", 2116 message: "With <strong>Automatic Mode</strong>, every tool you use is silently added to My Toolbox — so it's already waiting the next time you need it. It's unlocked for <strong>Pro</strong> and <strong>Premium</strong> subscribers.", 2117 primaryText: "See plans", 2118 cancelText: "Not now", 2119 primaryHref: '/premium-subscription/?src=automode&from=_about/contact_' 2120 }); 2121 checkBox.checked = false; 2122 setCookie('automaticmode', false, 365); 2123 return; 2124 2125 2126 var text = document.getElementById("addtoolbox"); 2127 if (checkBox.checked == true){ 2128 text.style.display = "none"; 2129 checkBox.checked = true; 2130 2131 } else { 2132 text.style.display = "block"; 2133 checkBox.checked = false; 2134 } 2135 setCookie('automaticmode',checkBox.checked,365); 2136 updatelocal(); 2137} 2138function mwtToolboxBadge() { 2139 var list = document.getElementById("mytoollist"); 2140 var badge = document.getElementById("mwt-tb-count"); 2141 if (!list || !badge) return; 2142 var n = list.getElementsByTagName("li").length; 2143 badge.textContent = n; 2144 if (n > 0) { badge.classList.remove("w3-hide"); } else { badge.classList.add("w3-hide"); } 2145 var empty = document.getElementById("mwt-tb-empty"); 2146 if (empty) { 2147 if (n > 0) { empty.classList.add("w3-hide"); } else { empty.classList.remove("w3-hide"); } 2148 } 2149} 2150 2151(function () { 2152 function watch() { 2153 var list = document.getElementById("mytoollist"); 2154 if (!list) return; 2155 mwtToolboxBadge(); 2156 if (window.MutationObserver) { 2157 new MutationObserver(mwtToolboxBadge).observe(list, { childList: true, subtree: true }); 2158 } 2159 } 2160 if (document.readyState === "loading") { 2161 document.addEventListener("DOMContentLoaded", watch); 2162 } else { 2163 watch(); 2164 } 2165})(); 2166 2167(function () { 2168 function closeToolbox() { 2169 var panel = document.getElementById("mytoolbox"); 2170 if (!panel || panel.className.indexOf("w3-show") === -1) return; 2171 panel.className = panel.className.replace(" w3-show", "").replace("w3-show", ""); 2172 var trigger = document.querySelector(".mwt-tb-trigger"); 2173 if (trigger) trigger.className = trigger.className.replace("activelinkto", "linkto"); 2174 } 2175 window.mwtCloseToolbox = closeToolbox; 2176 document.addEventListener("click", function (e) { 2177 var wrap = document.querySelector(".mwt-tb-wrap"); 2178 if (wrap && !wrap.contains(e.target)) closeToolbox(); 2179 }, true); 2180 document.addEventListener("keydown", function (e) { 2181 if (e.key === "Escape" || e.key === "Esc") closeToolbox(); 2182 }); 2183})(); 2184</script>
2184 2185 <a rel="nofollow" href="/premium-subscription/?src=topbar&from=_about/contact_" data-mwt-upgrade-cta="topbar" onclick="if(typeof gtag==='function'){gtag('event','begin_checkout',{source_tool:'_about/contact_',tier:'topbar'});}" class="w3-bar-item w3-button desktoponly mwt-topbar-pro" style="text-decoration:none;">Go Premium</a> <div class="w3-dropdown-hover w3-black"> <button class="w3-button w3-hover-green" title="Share" aria-label="Share"><span class="desktoponly">Share </span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="svg-inline svg-ml-1"> 2186 <path fill-rule="evenodd" d="M15.75 4.5a3 3 0 1 1 .825 2.066l-8.421 4.623a3.733 3.733 0 0 0 0 1.622l8.421 4.623A3 3 0 1 1 15.75 19.5a2.999 2.999 0 0 1-.825-2.066l-8.421-4.623a3.733 3.733 0 0 0 0-1.622l8.421-4.623A3 3 0 0 1 15.75 4.5Z" clip-rule="evenodd" /> 2187 </svg></button> <div style="display:none" class="w3-dropdown-content w3-bar-block w3-border"> <a href="#" data-url="mailto:?subject=&body=Please checkout this tool: https://MiniWebtool.com/about/contact/" data-title="Email" onclick="return openShareWindow(this, 500, 500);" title="Share it via Email" class="w3-bar-item w3-button w3-hover-green w3-black"><i class="fa fa-envelope-o"></i> Email</a> <a href="#" data-url="http://www.facebook.com/sharer.php?u=https://MiniWebtool.com/about/contact/" data-title="Facebook" onclick="return openShareWindow(this, 600, 600);" title="Share it on facebook" class="w3-bar-item w3-button w3-hover-green w3-black"><i class="fa fa-facebook"></i> Facebook</a> <a href="#" data-url="https://x.com/share?url=https://MiniWebtool.com/about/contact/" data-title="X" onclick="return openShareWindow(this, 600, 600);" title="Share it on X" class="w3-bar-item w3-button w3-hover-green w3-black"><i class="fa fa-twitter"></i> X</a> <a href="#" data-url="http://www.linkedin.com/shareArticle?mini=true&url=https://MiniWebtool.com/about/contact/" data-title="LinkedIn" onclick="return openShareWindow(this, 600, 600);" title="Share it on linkedin" class="w3-bar-item w3-button w3-hover-green w3-black"><i class="fa fa-linkedin"></i> LinkedIn</a> </div> </div>
2187<script> function openShareWindow(element, w, h) { const url = element.getAttribute('data-url'); const title = element.getAttribute('data-title'); const left = (screen.width/2)-(w/2); const top = (screen.height/2)-(h/2); window.open(url, title, 'toolbar=1, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0, copyhistory=0, width='+w+', height='+h+', top='+top+', left='+left); return false; } </script>
2187 2188<a href="javascript:bookmark();" class="w3-bar-item w3-button desktoponly" title="Bookmark this page"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> 2189 <path fill-rule="evenodd" d="M6.32 2.577a49.255 49.255 0 0 1 11.36 0c1.497.174 2.57 1.46 2.57 2.93V21a.75.75 0 0 1-1.085.67L12 18.089l-7.165 3.583A.75.75 0 0 1 3.75 21V5.507c0-1.47 1.073-2.756 2.57-2.93Z" clip-rule="evenodd" /> 2190 </svg></a> </div> </div> </div> <div id="bc" class="mobileonly"><div class="w z3 f6"></div></div> <div class="main"> 2191 2192<div class="bg-slate-50 min-h-screen"> 2193 2194 <div class="gradient-bg min-h-screen flex items-center justify-center relative overflow-hidden"> 2195 <div class="absolute inset-0 bg-black opacity-20"></div> 2196 2197 2198 <div class="absolute top-20 left-20 w-32 h-32 bg-white opacity-10 rounded-full floating-animation"></div> 2199 <div class="absolute bottom-32 right-32 w-24 h-24 bg-white opacity-10 rounded-full floating-animation" style="animation-delay: -2s;"></div> 2200 <div class="absolute top-1/2 left-10 w-16 h-16 bg-white opacity-10 rounded-full floating-animation" style="animation-delay: -4s;"></div> 2201 2202 <div class="container mx-auto px-4 sm:px-6 relative z-10"> 2203 <div class="text-center max-w-4xl mx-auto"> 2204 <div class="glass-effect p-6 sm:p-8 rounded-3xl backdrop-blur-xl"> 2205 <h1 class="text-5xl sm:text-6xl md:text-8xl font-bold text-white mb-6 leading-tight"> 2206 Mini<span class="text-yellow-300">Webtool</span> 2207 </h1> 2208 <p class="text-lg sm:text-xl md:text-2xl text-white/90 mb-8 font-light"> 2209 Your Trusted Partner for Smart Online Solutions Since 2010 2210 </p> 2211 <div class="flex items-center justify-center space-x-2 text-white/80 mb-8"> 2212 <div class="w-3 h-3 bg-green-400 rounded-full pulse-animation"></div> 2213 <span class="text-base sm:text-lg">Powered by Cosy Touch Limited</span> 2214 </div> 2215 <button onclick="scrollToContent()" class="bg-white text-slate-900 px-6 py-3 sm:px-8 sm:py-4 rounded-full font-semibold text-base sm:text-lg hover:bg-opacity-90 transition-all duration-300 hover:scale-105 shadow-2xl"> 2216 Explore Our Journey 2217 </button> 2218 </div> 2219 </div> 2220 </div> 2221 </div> 2222 2223 <div class="container mx-auto px-4 sm:px-6 py-16 sm:py-20" id="content"> 2224 <section class="mb-16 sm:mb-20"> 2225 <div class="text-center mb-12 sm:mb-16"> 2226 <h2 class="text-4xl sm:text-5xl font-bold text-gradient mb-6">Our Journey & Commitment</h2> 2227 <div class="w-24 h-1 bg-gradient-to-r from-blue-500 to-purple-600 mx-auto rounded-full"></div> 2228 </div> 2229 2230 <div class="grid md:grid-cols-2 gap-8 md:gap-12 items-center"> 2231 <div class="space-y-6"> 2232 <p class="text-base sm:text-lg text-slate-700 leading-relaxed"> 2233 Since 2010, Cosy Touch Limited has built practical online calculators, converters, and utilities for everyday users, students, developers, and businesses. MiniWebtool now brings together more than 1,920 tools, with new and updated tools added regularly. 2234 </p> 2235 2236 <div class="space-y-4"> 2237 <div class="flex items-start space-x-4"> 2238 <div class="w-12 h-12 bg-blue-100 rounded-xl flex items-center justify-center flex-shrink-0"> 2239 <svg class="w-6 h-6 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2240 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path> 2241 </svg> 2242 </div> 2243 <div> 2244 <h3 class="font-semibold text-slate-900 mb-1 text-md sm:text-lg">Utility & Simplicity</h3> 2245 <p class="text-slate-600 text-sm sm:text-base">Tools that are genuinely useful and incredibly intuitive</p> 2246 </div> 2247 </div> 2248 2249 <div class="flex items-start space-x-4"> 2250 <div class="w-12 h-12 bg-green-100 rounded-xl flex items-center justify-center flex-shrink-0"> 2251 <svg class="w-6 h-6 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2252 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path> 2253 </svg> 2254 </div> 2255 <div> 2256 <h3 class="font-semibold text-slate-900 mb-1 text-md sm:text-lg">Reliability & Accuracy</h3> 2257 <p class="text-slate-600 text-sm sm:text-base">Accurate results and reliable performance, every time</p> 2258 </div> 2259 </div> 2260 2261 <div class="flex items-start space-x-4"> 2262 <div class="w-12 h-12 bg-purple-100 rounded-xl flex items-center justify-center flex-shrink-0"> 2263 <svg class="w-6 h-6 text-purple-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2264 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9v-9m0-9v9"></path> 2265 </svg> 2266 </div> 2267 <div> 2268 <h3 class="font-semibold text-slate-900 mb-1 text-md sm:text-lg">Global Accessibility</h3> 2269 <p class="text-slate-600 text-sm sm:text-base">Designed for users from all walks of life worldwide</p> 2270 </div> 2271 </div> 2272 2273 <div class="flex items-start space-x-4"> 2274 <div class="w-12 h-12 bg-orange-100 rounded-xl flex items-center justify-center flex-shrink-0"> 2275 <svg class="w-6 h-6 text-orange-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2276 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path> 2277 </svg> 2278 </div> 2279 <div> 2280 <h3 class="font-semibold text-slate-900 mb-1 text-md sm:text-lg">Continuous Improvement</h3> 2281 <p class="text-slate-600 text-sm sm:text-base">Constantly enhancing our offerings based on feedback</p> 2282 </div> 2283 </div> 2284 </div> 2285 </div> 2286 2287 <div class="relative mt-8 md:mt-0"> 2288 <div class="bg-gradient-to-br from-blue-500 to-purple-600 rounded-3xl p-6 sm:p-8 text-white transform md:rotate-3 hover:rotate-0 transition-all duration-300"> 2289 <div class="text-center"> 2290 <div class="text-5xl sm:text-6xl font-bold mb-2">16+</div> 2291 <div class="text-lg sm:text-xl font-medium mb-4">Years Building Tools</div> 2292 <div class="text-xs sm:text-sm opacity-90">Since 2010, we've focused on fast, useful tools that solve real tasks</div> 2293 </div> 2294 </div> 2295 </div> 2296 </div> 2297 </section> 2298 2299 <section class="mb-16 sm:mb-20"> 2300 <div class="text-center mb-12 sm:mb-16"> 2301 <h2 class="text-4xl sm:text-5xl font-bold text-gradient mb-6">What We Offer</h2> 2302 <p class="text-lg sm:text-xl text-slate-600 max-w-3xl mx-auto mb-8"> 2303 An ever-expanding collection of 1,920+ online utilities, organized so you can quickly find the right calculator, converter, generator, or productivity tool. 2304 </p> 2305 <div class="w-24 h-1 bg-gradient-to-r from-blue-500 to-purple-600 mx-auto rounded-full"></div> 2306 </div> 2307 2308 <div class="bento-grid"> 2309 <div class="bento-item bento-large bg-gradient-to-br from-blue-50 to-indigo-100 p-6 sm:p-8 card-hover neon-glow"> 2310 <div class="feature-icon"> 2311 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2312 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"></path> 2313 </svg> 2314 </div> 2315 <h3 class="text-xl sm:text-2xl font-bold text-slate-900 mb-4">Calculators for Every Need</h3> 2316 <p class="text-slate-700 mb-6 text-base sm:text-lg">From basic arithmetic to specialized financial tools and high-precision scientific calculators.</p> 2317 <div class="flex flex-wrap gap-2 mb-4">
2318 <span class="px-3 py-1 bg-blue-200 text-blue-800 rounded-full text-xs sm:text-sm font-medium">Sum Calculator</span> 2319 <span class="px-3 py-1 bg-blue-200 text-blue-800 rounded-full text-xs sm:text-sm font-medium">Mortgage Calculator</span> 2320 <span class="px-3 py-1 bg-blue-200 text-blue-800 rounded-full text-xs sm:text-sm font-medium">ERA Calculator</span> 2321 <span class="px-3 py-1 bg-blue-200 text-blue-800 rounded-full text-xs sm:text-sm font-medium">Love Calculator</span> 2322 </div> 2323 <div class="text-2xl sm:text-3xl font-bold text-blue-600">450+ Calculators</div> 2324 </div> 2325 2326 <div class="bento-item bg-gradient-to-br from-green-50 to-emerald-100 p-6 sm:p-8 card-hover"> 2327 <div class="feature-icon bg-gradient-to-br from-green-500 to-emerald-600"> 2328 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2329 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4"></path> 2330 </svg> 2331 </div> 2332 <h3 class="text-lg sm:text-xl font-bold text-slate-900 mb-3">Versatile Converters</h3> 2333 <p class="text-slate-700 mb-4 text-sm sm:text-base">Unit conversions, data conversions, and format transformations.</p> 2334 <div class="text-xl sm:text-2xl font-bold text-green-600">100+ Converters</div> 2335 </div> 2336 2337 <div class="bento-item bg-gradient-to-br from-purple-50 to-violet-100 p-6 sm:p-8 card-hover"> 2338 <div class="feature-icon bg-gradient-to-br from-purple-500 to-violet-600"> 2339 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2340 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path> 2341 </svg> 2342 </div> 2343 <h3 class="text-lg sm:text-xl font-bold text-slate-900 mb-3">Text & Data Utilities</h3> 2344 <p class="text-slate-700 mb-4 text-sm sm:text-base">Powerful text manipulation and data extraction tools with AI features.</p> 2345 <div class="text-xl sm:text-2xl font-bold text-purple-600">100+ Text Tools</div> 2346 </div> 2347 2348 <div class="bento-item bg-gradient-to-br from-orange-50 to-amber-100 p-6 sm:p-8 card-hover"> 2349 <div class="feature-icon bg-gradient-to-br from-orange-500 to-amber-600"> 2350 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2351 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z"></path> 2352 </svg> 2353 </div> 2354 <h3 class="text-lg sm:text-xl font-bold text-slate-900 mb-3">Random Generators</h3> 2355 <p class="text-slate-700 mb-4 text-sm sm:text-base">For fun, decision-making, or data generation needs.</p> 2356 <div class="text-xl sm:text-2xl font-bold text-orange-600">60+ Random Tools</div> 2357 </div> 2358 2359 <div class="bento-item bg-gradient-to-br from-cyan-50 to-blue-100 p-6 sm:p-8 card-hover"> 2360 <div class="feature-icon bg-gradient-to-br from-cyan-500 to-blue-600"> 2361 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2362 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path> 2363 </svg> 2364 </div> 2365 <h3 class="text-lg sm:text-xl font-bold text-slate-900 mb-3">Developer Tools</h3> 2366 <p class="text-slate-700 mb-4 text-sm sm:text-base">Essential utilities for developers including hash, checksum, encoding, and webmaster tools.</p> 2367 <div class="text-xl sm:text-2xl font-bold text-cyan-600">60+ Developer Utilities</div> 2368 </div> 2369 2370 <div class="bento-item bg-gradient-to-br from-pink-50 to-rose-100 p-6 sm:p-8 card-hover"> 2371 <div class="feature-icon bg-gradient-to-br from-pink-500 to-rose-600"> 2372 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2373 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"></path> 2374 </svg> 2375 </div> 2376 <h3 class="text-lg sm:text-xl font-bold text-slate-900 mb-3">Multimedia Tools</h3> 2377 <p class="text-slate-700 mb-4 text-sm sm:text-base">Image, audio, and video processing tools for content creators.</p> 2378 <div class="text-xl sm:text-2xl font-bold text-pink-600">50+ Multimedia Tools</div> 2379 </div> 2380 </div> 2381 </section> 2382 2383 <section class="mb-16 sm:mb-20"> 2384 <div class="bg-gradient-to-br from-slate-900 to-slate-800 rounded-3xl p-8 sm:p-12 text-white relative overflow-hidden"> 2385 <div class="absolute inset-0 bg-gradient-to-br from-blue-600/20 to-purple-600/20"></div> 2386 <div class="relative z-10"> 2387 <h2 class="text-3xl sm:text-4xl font-bold mb-8 sm:mb-12 text-center">Why Choose MiniWebtool?</h2> 2388 2389 <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8"> 2390 <div class="text-center"> 2391 <div class="w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2392 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2393 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"></path> 2394 </svg> 2395 </div> 2396 <h3 class="text-lg sm:text-xl font-semibold mb-2">Unmatched Variety</h3> 2397 <p class="text-white/80 text-sm sm:text-base">Extensive collection covering a vast spectrum of needs</p> 2398 </div> 2399 2400 <div class="text-center"> 2401 <div class="w-16 h-16 bg-gradient-to-br from-green-500 to-emerald-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2402 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2403 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path> 2404 </svg> 2405 </div> 2406 <h3 class="text-lg sm:text-xl font-semibold mb-2">16+ Years Experience</h3> 2407 <p class="text-white/80 text-sm sm:text-base">Proven expertise in developing robust online tools</p> 2408 </div> 2409 2410 <div class="text-center"> 2411 <div class="w-16 h-16 bg-gradient-to-br from-orange-500 to-red-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2412 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2413 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"></path> 2414 </svg> 2415 </div> 2416 <h3 class="text-lg sm:text-xl font-semibold mb-2">User-Focused</h3> 2417 <p class="text-white/80 text-sm sm:text-base">Your feedback shapes our tools and improvements</p> 2418 </div> 2419 2420 <div class="text-center"> 2421 <div class="w-16 h-16 bg-gradient-to-br from-purple-500 to-pink-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2422 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2423 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1"></path> 2424 </svg> 2425 </div> 2426 <h3 class="text-lg sm:text-xl font-semibold mb-2">Free & Accessible</h3> 2427 <p class="text-white/80 text-sm sm:text-base">Powerful utilities accessible to everyone globally</p> 2428 </div> 2429 2430 <div class="text-center"> 2431 <div class="w-16 h-16 bg-gradient-to-br from-cyan-500 to-blue-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2432 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2433 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path> 2434 </svg> 2435 </div> 2436 <h3 class="text-lg sm:text-xl font-semibold mb-2">Trustworthy</h3> 2437 <p class="text-white/80 text-sm sm:text-base">Backed by Cosy Touch Limited, New Zealand</p> 2438 </div> 2439 2440 <div class="text-center"> 2441 <div class="w-16 h-16 bg-gradient-to-br from-yellow-500 to-orange-600 rounded-2xl flex items-center justify-center mx-auto mb-4"> 2442 <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> 2443 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path> 2444 </svg> 2445 </div> 2446 <h3 class="text-lg sm:text-xl font-semibold mb-2">Always Growing</h3> 2447 <p class="text-white/80 text-sm sm:text-base">Constantly adding new tools and features</p> 2448 </div> 2449 </div> 2450 </div> 2451 </div> 2452 </section> 2453 2454 <section class="mb-16 sm:mb-20 text-center"> 2455 <div class="bg-gradient-to-r from-blue-600 to-purple-600 rounded-3xl p-8 sm:p-12 text-white"> 2456 <h2 class="text-3xl sm:text-4xl font-bold mb-4">Ready to Explore?</h2> 2457 <p class="text-lg sm:text-xl mb-8 opacity-90">Discover 1,920+ tools designed to make everyday tasks easier</p> 2458 <a href="/alltools/"> 2459 <button class="bg-white text-slate-900 px-6 py-3 sm:px-8 sm:py-4 rounded-full font-semibold text-base sm:text-lg hover:bg-opacity-90 transition-all duration-300 hover:scale-105 shadow-2xl"> 2460 Browse All Tools 2461 </button> 2462 </a> 2463 </div> 2464 </section> 2465 2466 <section class="py-16 sm:py-20"> 2467 <div class="text-center mb-12 sm:mb-16"> 2468 <h2 class="text-4xl sm:text-5xl font-bold text-gradient mb-6">Contact Us</h2> 2469 <div class="w-24 h-1 bg-gradient-to-r from-blue-500 to-purple-600 mx-auto rounded-full"></div> 2470 </div> 2471 <div class="max-w-2xl mx-auto text-center text-slate-700 space-y-4"> 2472 <p class="text-lg sm:text-xl font-semibold">Cosy Touch Limited</p> 2473 <p class="text-base sm:text-lg">NZBN: 9429030636798, registered in New Zealand.</p> 2474 <p class="text-base sm:text-lg">
2474Email: <a class="text-blue-600 hover:text-blue-800 font-medium" href="/cdn-cgi/l/email-protection#097a7c7979667b7d49646067607e6c6b7d666665276a6664"><span class="__cf_email__" data-cfemail="6a191f1a1a05181e2a070304031d0f081e05050644090507">[email protected]</span></a></p> 2475 2476 <div class="grid sm:grid-cols-3 gap-4 text-left my-8"> 2477 <a href="/premium-subscription/" class="block rounded-2xl border border-slate-200 bg-white p-4 hover:border-blue-300 hover:shadow-md transition"> 2478 <span class="block font-semibold text-slate-900">Subscriptions</span> 2479 <span class="block text-sm text-slate-600 mt-1">Manage Pro, Premium, or access questions.</span> 2480 </a> 2481 <a href="https://api.miniwebtool.com/" class="block rounded-2xl border border-slate-200 bg-white p-4 hover:border-blue-300 hover:shadow-md transition"> 2482 <span class="block font-semibold text-slate-900">API & Agents</span> 2483 <span class="block text-sm text-slate-600 mt-1">View API docs, tools, and developer access.</span> 2484 </a> 2485 <a href="/alltools/" class="block rounded-2xl border border-slate-200 bg-white p-4 hover:border-blue-300 hover:shadow-md transition"> 2486 <span class="block font-semibold text-slate-900">Tool Feedback</span> 2487 <span class="block text-sm text-slate-600 mt-1">Suggest a tool or report an issue.</span> 2488 </a> 2489 </div> 2490 2491 <div id="follow-miniwebtool" class="text-left my-8 rounded-2xl border border-slate-200 bg-white p-5"> 2492 <p class="font-semibold text-slate-900 mb-1">Follow MiniWebtool</p> 2493 <p class="text-sm text-slate-600 mb-3">These are our only official accounts. We never ask for payment or passwords anywhere else.</p> 2494 <ul class="space-y-2 text-base"> 2495 <li><a class="text-blue-600 hover:text-blue-800 font-medium" rel="me noopener" target="_blank" href="https://www.facebook.com/miniwebtool">MiniWebtool on Facebook</a></li> 2496 <li><a class="text-blue-600 hover:text-blue-800 font-medium" rel="me noopener" target="_blank" href="https://www.youtube.com/@miniwebtool-official">MiniWebtool on YouTube (@miniwebtool-official)</a></li> 2497 <li><a class="text-blue-600 hover:text-blue-800 font-medium" rel="me noopener" target="_blank" href="https://www.pinterest.com/miniwebtool/">MiniWebtool on Pinterest</a></li> 2498 </ul> 2499 <p class="text-sm text-slate-600 mt-4">Payments are handled by Stripe. Our merchant profile: <a class="text-blue-600 hover:text-blue-800 font-medium" rel="me noopener" target="_blank" href="https://stripe.com/@miniwebtool">stripe.com/@miniwebtool</a></p> 2500 </div> 2501 2502 <p class="mb-6 text-slate-600">For bug reports, correction requests, subscription questions, API questions, or partnership inquiries, use the form below. Please include the tool URL when your message is about a specific tool.</p> 2503 2504 <form action="" method="POST" class="space-y-6"> 2505 2506 2507 2508 <div> 2509 <label for="id_name" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_name">Your Name:</label></b></label> 2510 <input type="text" name="name" class="required" maxlength="100" required id="id_name"> 2511 2512 2513 </div> 2514 2515 <div> 2516 <label for="id_email" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_email">Your Email Address:</label></b></label> 2517 <input type="text" name="email" class="required" maxlength="200" required id="id_email"> 2518 2519 2520 </div> 2521 2522 <div> 2523 <label for="id_body" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_body">Message Body:</label></b></label> 2524 <textarea name="body" cols="40" rows="10" class="required" required id="id_body"> 2525</textarea> 2526 2527 2528 </div> 2529 2530 <div> 2531 <label for="id_yourwebsite" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_yourwebsite"></label></b></label> 2532 <input type="hidden" name="yourwebsite" id="id_yourwebsite"> 2533 2534 2535 </div> 2536 2537 <div> 2538 <label for="id_form_timestamp" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_form_timestamp"></label></b></label> 2539 <input type="hidden" name="form_timestamp" value="1790230441" id="id_form_timestamp"> 2540 2541 2542 </div> 2543 2544 <div> 2545 <label for="id_captcha" class="block text-sm font-medium text-slate-700 mb-1"><b><label for="id_captcha">Captcha:</label></b></label>
vendor: 129 bytes, lines 2545-2546
2545 2546 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
vendor: 64 bytes, line 2546
2546<script src="https://www.google.com/recaptcha/api.js"></script>
2547<script type="text/javascript"> 2548 // Submit function to be called, after reCAPTCHA was successful. 2549 var onSubmit_60efb392c56c4b47ac21054e9f72dd97 = function(token) { 2550 console.log("reCAPTCHA validated for 'data-widget-uuid=\"60efb392c56c4b47ac21054e9f72dd97\"'") 2551 }; 2552</script>
2552 2553 2554<div class="g-recaptcha" 2555 data-theme="light" data-sitekey="6LfxHYgoAAAAAEphBb5NoOho_9UbY3C8j1dEOf25" required id="id_captcha" data-widget-uuid="60efb392c56c4b47ac21054e9f72dd97" data-callback="onSubmit_60efb392c56c4b47ac21054e9f72dd97" data-size="normal" 2556> 2557</div> 2558 2559 2560 </div> 2561 2562 2563 <div class="p_trap"> 2564 <hr> 2565 <p>The following fields are present to prevent automated submission systems. If you see it, please do not fill in a value.</p> 2566 <input type="text" name="f_email" value=""> 2567 <hr> 2568 </div> 2569 2570 <div> 2571 <input type="submit" value="Send Message"> 2572 </div> 2573 </form> 2574 </div> 2575 </section> 2576 2577 </div> 2578 2579
2579<script> 2580 function scrollToContent() { 2581 document.getElementById('content').scrollIntoView({ 2582 behavior: 'smooth' 2583 }); 2584 } 2585 2586 const cards = document.querySelectorAll('.card-hover'); 2587 cards.forEach(card => { 2588 card.addEventListener('mouseenter', () => { 2589 card.style.transform = 'translateY(-8px) scale(1.02)'; 2590 }); 2591 2592 card.addEventListener('mouseleave', () => { 2593 card.style.transform = 'translateY(0) scale(1)'; 2594 }); 2595 }); 2596 2597 const observerOptions = { 2598 threshold: 0.1, 2599 rootMargin: '0px 0px -50px 0px' 2600 }; 2601 2602 const observer = new IntersectionObserver((entries) => { 2603 entries.forEach(entry => { 2604 if (entry.isIntersecting) { 2605 entry.target.style.opacity = '1'; 2606 entry.target.style.transform = 'translateY(0)'; 2607 } 2608 }); 2609 }, observerOptions); 2610 2611 const bentoItems = document.querySelectorAll('.bento-item'); 2612 bentoItems.forEach((item, index) => { 2613 item.style.opacity = '0'; 2614 item.style.transform = 'translateY(30px)'; 2615 item.style.transition = `opacity 0.6s ease ${index * 0.1}s, transform 0.6s ease ${index * 0.1}s`; 2616 observer.observe(item); 2617 }); 2618 </script>
2618 2619</div> 2620 2621 2622 2623</div> <div class="w3-bar-block w3-animate-left" id="sidebar1"> <h2 style="margin-left:15px">Top & Updated:</h2> <div class=ma20></div> <div id="side-discover"><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Check any Instagram ID online: paste a username or profile URL to get the numeric user ID, full name, follower count and profile picture, or paste a numeric ID to find the username behind it. Free." href="/instagram-user-id-lookup/">Instagram User ID Lookup</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Random selector: pick one or more random items, chits, options or images from any list you paste, with a spinning wheel animation, sound, confetti and selection history. Great for giveaways, raffles, teams and quick decisions." href="/random-picker/">Random Picker</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Spin the wheel or pick from a list. No repeats so everyone gets a turn, saved class lists, up to 200,000 names, and optional certified proof the draw was fair." href="/random-name-picker/">Random Name Picker Wheel</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Resize images online for free. Supports JPG, PNG, GIF, WebP. Batch processing, social media presets, aspect ratio lock. 100% private - images never leave your browser." href="/image-resizer/">Image Resizer</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Free online tool to find any Facebook user, page, or group numeric ID from a profile URL or username. Essential for developers, marketers, and social media managers." href="/facebook-user-id-lookup/">Facebook User ID Lookup</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Sort numbers in ascending or descending order with comprehensive statistics, visual distribution charts, and detailed analysis. Handles decimals, negatives, and thousands separators." href="/sort-numbers/">Sort Numbers</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="RSD describes spread relative to the mean; it does not establish accuracy or data quality. Judge acceptability using criteria for your method and purpose. A mean near zero can make this ratio unstable." href="/relative-standard-deviation-calculator/">RSD Calculator - Relative Standard Deviation</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Change the frame rate (FPS) of your videos online - reduce or increase it - and download the result in seconds. Supports common presets and custom FPS. Free, fast, and fully client-side: no upload required." href="/fps-converter/">FPS Converter</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Count lines, words, characters, sentences, and paragraphs in any text. Features live preview with line numbers, blank line detection, code analysis mode, and interactive statistics visualization." href="/line-counter/">Line Counter</a><a class="w3-button w3-lightgrey w3-hover-green" data-tip="Remove extra spaces, leading/trailing spaces, blank lines, and normalize whitespace from text. Free online tool with live statistics, visual comparison, and multiple cleanup modes." href="/remove-spaces/">Remove Spaces</a><a class="w3-button w3-lightgrey w3-hover-green" href="/top-updated/">View all â</a></div> </div> <div id="right" class="w3-container desktoponly" style="width:342px"> 2624</div> <div id="widgetOverlay" class="modal-overlay w3-hide"> <span class="closebtn" onclick="displaywidget()" title="Close Overlay">Ã</span> <div class="modal-container"> <div class="w3-container w3-white"> <div class="w3-container w3-col " id="previewcontainer" style="width:500px"> <p>Preview</p> <div class="miniwebtoolwidget" data-calculator="" data-width="380"> <div class="miniwebtoolh"></div> <p><a href="https://MiniWebtool.com//" target="_blank"> ©MiniWebtool.com</a></p> </div> </div> <div class="w3-container w3-rest"> <div class="w3-container"> <p>EMBED THE WIDGET</p> <textarea aria-label="" id="widgettext" readonly cols="40" name="text" rows="10" style="width:99%" spellcheck="false" onclick="this.select()"><div class="miniwebtoolwidget" data-calculator="" data-width="380"><div class="miniwebtoolh"></div><p><a href="https://MiniWebtool.com//" target="_blank"> ©MiniWebtool.com</a></p></div>
2624<script async src="https://MiniWebtool.com/embed.js?v=1.1"></script>
2624</textarea> <p><button id="wigetcpbutton" onclick="copywidgetcode();" class="w3-block w3-green" style="width:100%" ;>Copy The Source Code</button></p> <p>EMBED OPTIONS</p> <p><input aria-label="Checkbox" class="w3-check" type="checkbox" checked="checked" onchange="showtitle(this)"> <label>Show Title</label></p> <p>Change Title:<input aria-label="Widget title text" type="text" id="widget-title-text" value="" oninput="changetitle(this.value)"></p> <div> <p> <input aria-label="Widget Range" type="range" min="300" max="500" value="380" step="10" class="sliderimg" id="widgetRange"></p> <p> Width: <span id="widthwidget">380</span>px. </p> <p>Tip: The widget is responsive to mobile devices. If the set width is larger than the device screen width, it will be automatically adjusted to 100% of the screen width. On the preview mode the width is limited to 500. You can change data-width to any value based on your website layout. <hr> <p>By embedding MiniWebtool widgets on your site, you are agreeing to our <a href="/about/terms-and-disclaimer/" target="blank">Terms of Service.</a> </div> </div> </div> </div> </div> </div>
2624<script> function displaywidget() { var x = document.getElementById("widgetOverlay"); if (x.className.indexOf("w3-show") == -1) { x.className += " w3-show"; } else { x.className = x.className.replace(" w3-show", ""); } lowerZIndex(); var usedLaterScript = document.createElement('script'); usedLaterScript.src = 'https://MiniWebtool.com/embed.js?v=1.1'; document.getElementsByTagName('head')[0].appendChild(usedLaterScript); } var sliderw = document.getElementById("widgetRange"); var outputw = document.getElementById("widthwidget"); var wtextid = document.getElementById("widgettext"); outputw.innerHTML = sliderw.value; var previewdiv = document.getElementsByClassName("miniwebtoolwidget")[0]; var previewtitle = document.getElementsByClassName("miniwebtoolh")[0]; sliderw.oninput = function() { outputw.innerHTML = this.value; previewdiv.style.maxWidth = this.value + 'px'; let s1 = wtextid.value.search("data-width="); let s2 = wtextid.value.search('><div class="miniwebtoolh">'); let newt =wtextid.value.slice(s1,s2); newt = wtextid.value.replace(newt,'data-width="'+this.value+'"'); wtextid.value=newt; }; function copywidgetcode(){ wtextid.select(); document.execCommand("copy"); document.getElementById("wigetcpbutton").innerHTML = "Source Code Copied to Clipboard."; } function changetitle(val) { previewtitle.innerHTML = val; let s1 = wtextid.value.search('<div class="miniwebtoolh">'); let s2 = wtextid.value.search('</div><p><a '); let newt =wtextid.value.slice(s1,s2); newt = wtextid.value.replace(newt,'<div class="miniwebtoolh">'+val); wtextid.value=newt; document.getElementById("wigetcpbutton").innerHTML = "Copy The Source Code"; } var wtt=document.getElementById("widget-title-text"); function showtitle(e) { let s1 = wtextid.value.search('<div class="miniwebtoolh">'); let s2 = wtextid.value.search('</div><p><a '); let newt =wtextid.value.slice(s1,s2); if (e.checked) {previewtitle.style.display="block"; previewtitle.innerHTML = wtt.value; newt = wtextid.value.replace(newt,'<div class="miniwebtoolh">'+wtt.value); wtextid.value=newt; document.getElementById("wigetcpbutton").innerHTML = "Copy The Source Code"; wtt.readOnly=false; wtt.style.backgroundColor="#fff"; } else { previewtitle.style.display="none"; previewtitle.innerHTML = ""; newt = wtextid.value.replace(newt,'<div class="miniwebtoolh">'); wtextid.value=newt; document.getElementById("wigetcpbutton").innerHTML = "Copy The Source Code"; wtt.readOnly=true; wtt.style.backgroundColor="#eee"; } } </script>
2624 <div class="bc-foot mobileonly"><div class="w z3 f6"> > <a href="//"></a> </div></div> <footer class="w3-panel w3-padding-32 w3-card-4 w3-light-grey w3-center w3-opacity ftmargin"> <p> <nav> Copyright © 2010-<span id="current-year"></span> MiniWebtool.com (Cosy Touch Limited) | <a href="/sitemap.xml">Sitemap</a> | <a href="https://MiniWebtool.com/rss.xml">Feed</a> | <a href="/guide/">Guide</a> | <a href="https://api.miniwebtool.com/">API</a> | <a href="/about/terms-and-disclaimer/">Terms and Disclaimer</a> | <a href="/about/privacy/">Privacy Policy</a> | <a href="/about/trust/">Trust & Security</a> | <a href="/about/contact/">About Us & Contact</a> | <a href="/access-premium/" title="Access Premium Version" data-mwt-premium-footer>Access Premium Version</a> </nav> </p> </footer>
2624<script>const popupCenter = ({url, title, w, h}) => { const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; const systemZoom = width / window.screen.availWidth; const left = (width - w) / 2 / systemZoom + dualScreenLeft; const top = (height - h) / 2 / systemZoom + dualScreenTop; const newWindow = window.open(url, title, ` scrollbars=yes, width=${w / systemZoom}, height=${h / systemZoom}, top=${top}, left=${left} ` ); newWindow.onbeforeunload = function(){ displaypopback(0); }; newWindow.onfocus = function(){ displaypopback(1); }; if (window.focus) newWindow.focus(); }; window.addEventListener("focus", function(){displaypopback(0);}); function displaypopback(show) { var x = document.getElementById("popupback"); if (show==1) { x.style.display = "block"; } else { x.style.display = "none"; } } </script>
2624 <div id="popupback" class="overlay" style="display:none;z-index:2147483647;"></div> <div id="iframeOverlay" style="position: absolute; width: 400px; height: 600px; display: none;overflow: hidden;border-radius: 8px;cursor: pointer;"> <div class="miniwebtoolh" style="visibility: visible; opacity: 1; display: block; margin: 0px; padding: 16px 0px; text-align: center; font-family: arial; font-size: 20px; color: lightgreen; background: linear-gradient(135deg, #4a90e2, #6a5acd);line-height: 40px;">Preview</div> <iframe id="previewIframe" style="width: 400px; height: 600px; border: none; display: none; pointer-events: none;overflow: hidden;"></iframe> </div>
2624<script> function loadc2() { var script1 = document.createElement('script'); script1.innerHTML = "!function(n){if(!window.cnx){window.cnx={},window.cnx.cmd=[];var t=n.createElement('iframe');t.src='javascript:false'; t.display='none',t.onload=function(){var n=t.contentWindow.document,c=n.createElement('script');c.src='//cd.connatix.com/connatix.player.js?cid=811ea41e-b01a-42cb-9b07-14a72d08ae92',c.setAttribute('async','1'),c.setAttribute('type','text/javascript'),n.body.appendChild(c)},n.head.appendChild(t)}}(document);"; document.head.appendChild(script1); var script2 = document.createElement('script'); script2.id = "bdc00789f3cb4d8e86a663a40f5ff76a"; script2.innerHTML = "(new Image()).src = 'https://capi.connatix.com/tr/si?token=31ee02cb-c46c-446a-8bd9-bdc7c6fbdeb4&cid=811ea41e-b01a-42cb-9b07-14a72d08ae92'; cnx.cmd.push(function() { cnx({playerId: '31ee02cb-c46c-446a-8bd9-bdc7c6fbdeb4'}).render('bdc00789f3cb4d8e86a663a40f5ff76a');});"; var fvid=document.getElementById("featuredvid"); if (fvid) {fvid.innerHTML = ""; fvid.appendChild(script2); } } </script>
2624
2624<script> document.getElementById("searchInput").addEventListener('click', function(event) { event.stopPropagation(); }); document.getElementById("searchInput").addEventListener('touchstart', function(event) { event.stopPropagation(); }); window.onclick = function(event) { var menu = document.getElementById("mobileMenu"); var icon = document.querySelector(".menu-icon"); if (!menu || !icon) { return; } if (!icon.contains(event.target) && !menu.contains(event.target)) { menu.classList.remove('show'); icon.setAttribute('aria-expanded', 'false'); } }; function bookmark(){ if ('sidebar' in window && 'addPanel' in window.sidebar) { window.sidebar.addPanel(location.href,document.title,""); } else { (window.mwtBookmarkPrompt||window.alert)('Please press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page for further access.', 'Set as a preferred source on Google'); } } </script>
2624
2624<script defer src="/js/mwt-ui.v1.js?v=6ab370e1&inp=20260908"></script>
2624 <div id="mwt-tip"></div>
2625<script> 2626(function(){ 2627 var tip = document.getElementById('mwt-tip'); 2628 if (!tip) return; 2629 document.addEventListener('mouseover', function(e) { 2630 var el = e.target.closest('[data-tip]'); 2631 if (el && el.dataset.tip) { 2632 tip.textContent = el.dataset.tip; 2633 tip.classList.add('show'); 2634 } 2635 }); 2636 document.addEventListener('mouseout', function(e) { 2637 var el = e.target.closest('[data-tip]'); 2638 if (el) tip.classList.remove('show'); 2639 }); 2640 document.addEventListener('mousemove', function(e) { 2641 if (!tip.classList.contains('show')) return; 2642 var x = e.clientX + 15, y = e.clientY + 15; 2643 var tw = tip.offsetWidth, th = tip.offsetHeight; 2644 if (x + tw > window.innerWidth - 10) x = e.clientX - tw - 15; 2645 if (y + th > window.innerHeight - 10) y = e.clientY - th - 15; 2646 tip.style.left = x + 'px'; 2647 tip.style.top = y + 'px'; 2648 }); 2649})(); 2650</script>
vendor: 1 bytes, line 2650
2650
2651<script>(function(){var mwtLangMenuDismiss=function(){return document.getElementById('lang-footer');};document.addEventListener('click',function(e){var d=mwtLangMenuDismiss();if(d&&d.open&&!d.contains(e.target)){d.open=false;}},true);document.addEventListener('keydown',function(e){if(e.key==='Escape'||e.key==='Esc'){var d=mwtLangMenuDismiss();if(d&&d.open){d.open=false;}}});})();</script>
2651 <div id="mwt-loading"><div class="mwt-loader"><div class="mwt-ring"></div><div class="mwt-dots"><span></span><span></span><span></span></div></div></div> 2652 2653<style> 2654 /* The overlay scrolls, the card centers via margin:auto â unlike flex 2655 centering this never clips the card's top edge when large fonts or a 2656 short viewport make the card taller than the screen. */ 2657 #mwt-zipgate{position:fixed;inset:0;z-index:2147483647;display:none;background:rgba(15,23,42,.55);padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch} 2658 #mwt-zipgate.on{display:flex} 2659 #mwt-zipgate .zg-card{position:relative;margin:auto;background:#fff;border-radius:14px;max-width:430px;width:100%;padding:26px 26px 22px;box-shadow:0 24px 60px -12px rgba(15,23,42,.45);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#0f172a;text-align:left} 2660 #mwt-zipgate .zg-x{position:absolute;top:10px;right:12px;border:0;background:none;color:#556072;font-size:1.5rem;line-height:1;cursor:pointer;padding:4px} 2661 #mwt-zipgate .zg-x:hover{color:#475569} 2662 #mwt-zipgate .zg-badge{display:inline-block;background:#dcfce7;color:#14532d;font-weight:800;font-size:.7rem;letter-spacing:.08em;padding:3px 9px;border-radius:999px;text-transform:uppercase;margin-bottom:10px} 2663 #mwt-zipgate h3{margin:0 0 8px;font-size:1.18rem;font-weight:800;letter-spacing:-.01em} 2664 #mwt-zipgate .zg-free{margin:0 0 12px;color:#475569;font-size:.93rem} 2665 #mwt-zipgate ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px} 2666 #mwt-zipgate li{position:relative;padding-left:24px;font-size:.92rem} 2667 #mwt-zipgate li:before{content:"\2713";position:absolute;left:2px;top:0;color:#16a34a;font-weight:700} 2668 #mwt-zipgate .zg-price{margin:0 0 14px;color:#475569;font-size:.85rem} 2669 #mwt-zipgate .zg-cta{display:block;text-align:center;background:#16a34a;color:#fff;font-weight:700;font-size:.98rem;text-decoration:none;padding:12px 16px;border-radius:10px} 2670 #mwt-zipgate .zg-cta:hover{background:#14532d} 2671 #mwt-zipgate .zg-or{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:#556072;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em} 2672 #mwt-zipgate .zg-or:before,#mwt-zipgate .zg-or:after{content:"";flex:1;height:1px;background:#e2e8f0} 2673 #mwt-zipgate .zg-reward{display:none} 2674 #mwt-zipgate .zg-reward-btn{display:block;width:100%;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;color:#0f172a;font-weight:700;font-size:.95rem;padding:11px 16px;cursor:pointer} 2675 #mwt-zipgate .zg-reward-btn:hover{border-color:#94a3b8;background:#f8fafc} 2676 #mwt-zipgate .zg-reward-note{margin:7px 0 0;color:#556072;font-size:.76rem;text-align:center} 2677 #mwt-zipgate .zg-later{display:block;width:100%;margin-top:10px;border:0;background:none;color:#64748b;font-size:.86rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:4px} 2678 #mwt-zipgate .zg-foot{margin:12px 0 0;color:#556072;font-size:.76rem;text-align:center} 2679</style> 2680<div id="mwt-zipgate" role="dialog" aria-modal="true" aria-labelledby="mwt-zipgate-title"></div> 2681<template id="mwt-zipgate-card"> 2682 <div class="zg-card"> 2683 <button type="button" class="zg-x" id="mwt-zipgate-x" aria-label="Close">×</button> 2684 <span class="zg-badge">Pro feature</span> 2685 2686 <h3 id="mwt-zipgate-title">Download everything as one ZIP with Pro</h3> 2687 <p class="zg-free">Downloading files one at a time stays free â no limit. The one-click ZIP of all your files, plus the rest of Pro, takes seconds to unlock:</p> 2688 <ul> 2689 <li>Batch ZIP downloads on all image, PDF & video tools</li> 2690 2691 <li>60 runs/day on capped tools (20Ã the free plan)</li> 2692 <li>Ads off, everywhere on the site</li> 2693 <li>My Toolbox unlocked â unlimited saves + Automatic Mode</li> 2694 </ul> 2695 <p class="zg-price">From <strong>$3.33/month</strong> billed annually · cancel anytime · no account needed · unlocks instantly</p> 2696 <span id="zg-exp-title" hidden>Download this result as a file with Pro</span> 2697 <span id="zg-exp-free" hidden>Reading the result on this page stays free â nothing is hidden. Taking it away as a PDF or JPG, plus the rest of Pro, takes seconds to unlock:</span> 2698 <span id="zg-exp-bullet" hidden>PDF and JPG downloads of any tool's result</span> 2699 <span id="zg-exp-later" hidden>Not now â reading it on the page is enough</span> 2700 <span id="zg-exp-reward" hidden>Watch a short ad â unlock PDF & JPG on this tool for the rest of today</span> 2701 <a rel="nofollow" class="zg-cta" data-mwt-zipgate-cta="pro" 2702 href="/premium-subscription/?tier=pro&from=_about/contact_&src=zipgate">See Pro plans →</a> 2703 2704 <div class="zg-reward" id="mwt-zg-reward"> 2705 <div class="zg-or">or</div> 2706 <button type="button" class="zg-reward-btn" id="mwt-zg-reward-btn">Watch a short ad â unlock PDF & JPG on this tool for the rest of today</button> 2707 <p class="zg-reward-note">This download only. No account, no card.</p> 2708 </div> 2709 2710 2711 <button type="button" class="zg-later" id="mwt-zipgate-later">Not now â I'll download files one by one</button> 2712 2713 <p class="zg-foot">Premium includes everything in Pro, with no daily caps at all.</p> 2714 </div> 2715</template> 2716
2717<script> 2718(function () { 2719 if (window.mwtRequestUsageStatus) return; 2720 var pending = Object.create(null); 2721 // Share only in-flight reads. Never reuse settled quota data after a 2722 // reserve/commit/refund, and never cache a user's quota in shared storage. 2723 window.mwtRequestUsageStatus = function (module, lang) { 2724 var url = '/_api/usage/status/?module=' + encodeURIComponent(module) + 2725 '&lang=' + encodeURIComponent(lang || 'en'); 2726 var tv = (location.search || '').match(/[?&]tv=([ab])(?:&|$)/); 2727 if (tv) url += '&tv=' + tv[1]; 2728 if (!pending[url]) { 2729 var request = Promise.resolve().then(function () { 2730 return fetch(url, {credentials: 'same-origin', cache: 'no-store'}); 2731 }).then(function (response) { return response.ok ? response.json() : null; }); 2732 pending[url] = request; 2733 function release() { if (pending[url] === request) delete pending[url]; } 2734 request.then(release, release); 2735 } 2736 return pending[url]; 2737 }; 2738})(); 2739</script>
2739 2740
2741<script> 2742(function () { 2743 var SEL = ""; 2744 var EXPSEL = "#mwt\u002Dexport\u002Dpdf, #mwt\u002Dexport\u002Djpg"; 2745 var ALLSEL = SEL && EXPSEL ? (SEL + ", " + EXPSEL) : (SEL || EXPSEL); 2746 var MOD = "_about/contact_"; 2747 var LANG = "en"; 2748 var GATE_KIND = "zip"; 2749 var AD = "/71161633,21815091813/MINWBTOOL_miniwebtool/rewarded_ad"; 2750 var ADTEST = false; 2751 var modal = document.getElementById('mwt-zipgate'); 2752 var cardTpl = document.getElementById('mwt-zipgate-card'); 2753 if (!ALLSEL || !MOD || !modal || !cardTpl) return; 2754 2755 try { 2756 if (modal.parentNode !== document.body) document.body.appendChild(modal); 2757 } catch (e) {} 2758 2759 var hydrated = false; 2760 function hydrate() { 2761 if (hydrated) return; 2762 hydrated = true; 2763 modal.appendChild(cardTpl.content.cloneNode(true)); 2764 var x = modal.querySelector('#mwt-zipgate-x'); 2765 if (x) x.addEventListener('click', hideModal); 2766 var later = modal.querySelector('#mwt-zipgate-later'); 2767 if (later) later.addEventListener('click', hideModal); 2768 if (AD) { 2769 var rewardBtn = modal.querySelector('#mwt-zg-reward-btn'); 2770 if (rewardBtn) rewardBtn.addEventListener('click', onRewardBtnClick); 2771 } 2772 } 2773 2774 var state = null; 2775 var pending = null; 2776 var impressionFired = false; 2777 var lastFocus = null; 2778 2779 var adSlot = null, adReady = null, adRequested = false; 2780 var adGranted = false, adOfferLogged = false, adBound = false; 2781 var rewardEl = null, pendingEl = null, adTarget = null; 2782 2783 function ga(name, params) { 2784 if (typeof gtag !== 'function') return; 2785 try { gtag('event', name, params); } catch (e) {} 2786 } 2787 2788 function decide(tier, isPaid) { 2789 return (tier === 'pro' || tier === 'premium' || isPaid) ? 'allow' : 'gate'; 2790 } 2791 2792 function tierFromQuota() { 2793 var q = window.__mwtQuota; 2794 return (q && q.live && q.tier) ? q.tier : null; 2795 } 2796 2797 function resolveState() { 2798 if (state) return Promise.resolve(state); 2799 var t = tierFromQuota(); 2800 if (t) { state = decide(t, false); return Promise.resolve(state); } 2801 if (!pending) { 2802 pending = window.mwtRequestUsageStatus(MOD, LANG) 2803 .then(function (d) { 2804 state = d ? decide(d.tier, d.is_paid) : 'allow'; 2805 return state; 2806 }) 2807 .catch(function () { state = 'allow'; return state; }); 2808 } 2809 return pending; 2810 } 2811 2812 var zipCopy = null; 2813 2814 function isExportEl(el) { 2815 return !!(EXPSEL && el.closest && el.closest(EXPSEL)); 2816 } 2817 2818 function canReward(el) { 2819 return !!el && (isExportEl(el) || GATE_KIND !== 'zip'); 2820 } 2821 2822 function updateRewardOffer() { 2823 var box = rewardBox(); 2824 var eligible = canReward(pendingEl) && !!adReady; 2825 if (box) box.style.display = eligible ? 'block' : 'none'; 2826 if (eligible && !adOfferLogged) { 2827 adOfferLogged = true; 2828 ga('rewarded_offer_shown', { source_tool: MOD }); 2829 } 2830 } 2831 2832 function applyGateCopy(forExport) { 2833 hydrate(); 2834 updateRewardOffer(); 2835 var title = modal.querySelector('#mwt-zipgate-title'); 2836 var free = modal.querySelector('.zg-free'); 2837 var bullet = modal.querySelector('ul li'); 2838 var later = modal.querySelector('#mwt-zipgate-later'); 2839 var reward = modal.querySelector('#mwt-zg-reward-btn'); 2840 if (!title || !free || !bullet) return; 2841 if (zipCopy === null) { 2842 zipCopy = { 2843 title: title.innerHTML, free: free.innerHTML, bullet: bullet.innerHTML, 2844 later: later ? later.innerHTML : '', reward: reward ? reward.innerHTML : '' 2845 }; 2846 } 2847 var pick = function (id, fallback) { 2848 var el = modal.querySelector(id); 2849 return el ? el.innerHTML : fallback; 2850 }; 2851 if (forExport) { 2852 title.innerHTML = pick('#zg-exp-title', zipCopy.title); 2853 free.innerHTML = pick('#zg-exp-free', zipCopy.free); 2854 bullet.innerHTML = pick('#zg-exp-bullet', zipCopy.bullet); 2855 if (later) later.innerHTML = pick('#zg-exp-later', zipCopy.later); 2856 if (reward) reward.innerHTML = pick('#zg-exp-reward', zipCopy.reward); 2857 } else { 2858 title.innerHTML = zipCopy.title; 2859 free.innerHTML = zipCopy.free; 2860 bullet.innerHTML = zipCopy.bullet; 2861 if (later) later.innerHTML = zipCopy.later; 2862 if (reward) reward.innerHTML = zipCopy.reward; 2863 } 2864 } 2865 2866 function showModal() { 2867 hydrate(); 2868 lastFocus = document.activeElement; 2869 modal.classList.add('on'); 2870 var cta = modal.querySelector('.zg-cta'); 2871 if (cta) try { cta.focus(); } catch (e) {} 2872 if (!impressionFired) { 2873 impressionFired = true; 2874 ga('zipgate_impression', { source_tool: MOD, tier: 'free' }); 2875 } 2876 } 2877 2878 function hideModal() { 2879 modal.classList.remove('on'); 2880 if (lastFocus && lastFocus.focus) try { lastFocus.focus(); } catch (e) {} 2881 } 2882 2883 modal.addEventListener('click', function (ev) { 2884 if (ev.target === modal) hideModal(); 2885 var cta = ev.target.closest ? ev.target.closest('[data-mwt-zipgate-cta]') : null; 2886 if (cta) { 2887 ga('begin_checkout', { tier: 'pro', source_tool: MOD, trigger: 'zipgate' }); 2888 } 2889 }); 2890 document.addEventListener('keydown', function (ev) { 2891 if (ev.key === 'Escape' && modal.classList.contains('on')) hideModal(); 2892 }); 2893 2894 function expDay() { 2895 var d = new Date(); 2896 return '' + d.getFullYear() + ('0' + (d.getMonth() + 1)).slice(-2) + ('0' + d.getDate()).slice(-2); 2897 } 2898 2899 function expKey() { return 'mwt_exp_unlock:' + MOD + ':' + expDay(); } 2900 2901 function expUnlocked() { 2902 try { return window.localStorage.getItem(expKey()) === '1'; } catch (e) { return false; } 2903 } 2904 2905 function setExpUnlocked() { 2906 try { 2907 var ls = window.localStorage; 2908 ls.setItem(expKey(), '1'); 2909 var today = expDay(), stale = []; 2910 for (var i = 0; i < ls.length; i++) { 2911 var k = ls.key(i); 2912 if (k && k.indexOf('mwt_exp_unlock:') === 0 && k.slice(-8) !== today) stale.push(k); 2913 } 2914 for (var j = 0; j < stale.length; j++) ls.removeItem(stale[j]); 2915 } catch (e) {} 2916 } 2917 2918 function rewardBox() { return document.getElementById('mwt-zg-reward'); } 2919 2920 function onAdReady(evt) { 2921 adReady = evt; 2922 updateRewardOffer(); 2923 } 2924 2925 function onAdGranted(evt) { 2926 adGranted = true; 2927 ga('rewarded_granted', { 2928 source_tool: MOD, 2929 reward_type: (evt && evt.payload && evt.payload.type) || '' 2930 }); 2931 } 2932 2933 function onAdClosed() { 2934 var box = rewardBox(); 2935 if (box) box.style.display = 'none'; 2936 try { googletag.destroySlots([adSlot]); } catch (e) {} 2937 adSlot = null; adReady = null; adRequested = false; adOfferLogged = false;
2938 if (adGranted) { 2939 adGranted = false; 2940 var target = adTarget; 2941 adTarget = null; 2942 if (canReward(target)) { 2943 rewardEl = target; 2944 if (isExportEl(target)) setExpUnlocked(); 2945 hideModal(); 2946 try { target.click(); } catch (e) {} 2947 } 2948 } else { 2949 ga('rewarded_dismissed', { source_tool: MOD }); 2950 showModal(); 2951 } 2952 } 2953 2954 function stubAd() { 2955 var left = 5; 2956 var o = document.createElement('div'); 2957 o.style.cssText = 'position:fixed;inset:0;z-index:2147483647;background:#0f172a;color:#fff;' + 2958 'display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;' + 2959 'font:16px/1.5 system-ui,-apple-system,sans-serif;text-align:center;padding:24px'; 2960 o.innerHTML = '<div style="font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.55">' + 2961 'DEBUG rewarded-ad stub</div><div style="font-size:2.6rem;font-weight:800">' + 2962 '<span id="mwt-zg-stub-n">5</span></div>' + 2963 '<button type="button" id="mwt-zg-stub-x" style="border:0;border-radius:8px;padding:9px 18px;' + 2964 'font-size:.9rem;cursor:pointer">Close early (forfeit reward)</button>'; 2965 document.body.appendChild(o); 2966 var timer = null; 2967 function finish(granted) { 2968 if (timer) { clearInterval(timer); timer = null; } 2969 if (o.parentNode) o.parentNode.removeChild(o); 2970 if (granted) onAdGranted({ payload: { type: 'test', amount: 1 } }); 2971 onAdClosed(); 2972 } 2973 o.querySelector('#mwt-zg-stub-x').addEventListener('click', function () { finish(false); }); 2974 timer = setInterval(function () { 2975 left -= 1; 2976 var n = o.querySelector('#mwt-zg-stub-n'); 2977 if (n) n.textContent = String(left); 2978 if (left <= 0) finish(true); 2979 }, 1000); 2980 } 2981 2982 function loadRewarded(el) { 2983 if (!canReward(el) || !AD || adRequested) return; 2984 hydrate(); 2985 adRequested = true; 2986 if (ADTEST) { onAdReady({ makeRewardedVisible: stubAd }); return; } 2987 try { if (typeof window.loadf === 'function') window.loadf(); } catch (e) {} 2988 window.googletag = window.googletag || {}; 2989 window.googletag.cmd = window.googletag.cmd || []; 2990 googletag.cmd.push(function () { 2991 try { 2992 var fmt = googletag.enums && googletag.enums.OutOfPageFormat; 2993 if (!fmt || !fmt.REWARDED) return; 2994 adSlot = googletag.defineOutOfPageSlot(AD, fmt.REWARDED); 2995 if (!adSlot) return; 2996 adSlot.addService(googletag.pubads()); 2997 if (!adBound) { 2998 adBound = true; 2999 googletag.pubads().addEventListener('rewardedSlotReady', onAdReady); 3000 googletag.pubads().addEventListener('rewardedSlotGranted', onAdGranted); 3001 googletag.pubads().addEventListener('rewardedSlotClosed', onAdClosed); 3002 } 3003 googletag.enableServices(); 3004 googletag.display(adSlot); 3005 googletag.pubads().refresh([adSlot]); 3006 } catch (e) { adRequested = false; } 3007 }); 3008 } 3009 3010 function onRewardBtnClick() { 3011 if (!adReady || !canReward(pendingEl)) return; 3012 adTarget = pendingEl; 3013 ga('rewarded_opt_in', { source_tool: MOD }); 3014 var evt = adReady; 3015 adReady = null; 3016 hideModal(); 3017 try { evt.makeRewardedVisible(); } catch (e) { showModal(); } 3018 } 3019 3020 function prewarm(ev) { 3021 var el = ev.target && ev.target.closest ? ev.target.closest(ALLSEL) : null; 3022 if (!el) return; 3023 resolveState().then(function (s) { if (s === 'gate') loadRewarded(el); }); 3024 } 3025 document.addEventListener('pointerover', prewarm, true); 3026 document.addEventListener('touchstart', prewarm, { capture: true, passive: true }); 3027 3028 document.addEventListener('click', function (ev) { 3029 var el = ev.target && ev.target.closest ? ev.target.closest(ALLSEL) : null; 3030 if (!el) return; 3031 if (rewardEl === el && canReward(el)) { rewardEl = null; return; } 3032 if (isExportEl(el) && expUnlocked()) return; 3033 if (state === 'allow') return; 3034 pendingEl = el; 3035 applyGateCopy(isExportEl(el)); 3036 ev.preventDefault(); 3037 ev.stopImmediatePropagation(); 3038 ev.stopPropagation(); 3039 if (state === 'gate') { loadRewarded(el); showModal(); return; } 3040 resolveState().then(function (s) { 3041 if (s === 'allow') { 3042 el.click(); 3043 } else { 3044 loadRewarded(el); 3045 showModal(); 3046 } 3047 }); 3048 }, true); 3049})(); 3050</script>
3050 3051 3052 3053 3054 3055 3056 3057
3058<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a400880b3bad8e5c',t:'MTc5MDIzOTcyMA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
3058</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.