https://www.sublimearts.io/_next/static/chunks/04nv7cg-m4bbx.js?dpl=dpl_9wUF3VueoVhygYawV2TzoeaFtJ5k
1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5050,41775,64936,12973,91947,46236,45641,e=>{"use strict";let t,r,i,a,n="u">typeof window,o=n?window:null,s=n?document:null,l={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},u={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},d={NONE:0,AUTO:1,FORCE:2},c={replace:0,none:1,blend:2},g=Symbol(),p=Symbol(),m=Symbol(),b=Symbol(),h=Symbol(),f="var(",x=[],v=((i=new Map).set("x","translateX"),i.set("y","translateY"),i.set("z","translateZ"),i),w=["perspective","translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY"],y=w.reduce((e,t)=>({...e,[t]:t+"("}),{}),T=()=>{},C=e=>e,_=/\)\s*[-.\d]/,k=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,S=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,N=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,A=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,D=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,P=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,I=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,E=/([a-z])([A-Z])/g,z=/var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/;e.s(["K",0,1e3,"compositionTypes",0,c,"cssVarPrefix",0,f,"cssVariableMatchRgx",0,z,"digitWithExponentRgx",0,P,"doc",0,s,"emptyArray",0,x,"emptyString",0,"","hexTestRgx",0,k,"hslExecRgx",0,A,"hslaExecRgx",0,D,"isBrowser",0,n,"isDomSymbol",0,p,"isRegisteredTargetSymbol",0,g,"isSvgSymbol",0,m,"lowerCaseRgx",0,E,"maxFps",0,240,"maxValue",0,1e12,"minValue",0,1e-11,"noop",0,T,"noopModifier",0,C,"proxyTargetSymbol",0,h,"relativeValuesExecRgx",0,/(\*=|\+=|-=)/,"rgbExecRgx",0,S,"rgbaExecRgx",0,N,"shortTransforms",0,v,"tickModes",0,d,"transformsFragmentStrings",0,y,"transformsSymbol",0,b,"tweenTypes",0,l,"unitsExecRgx",0,I,"validRgbHslRgx",0,_,"validTransforms",0,w,"valueTypes",0,u,"win",0,o],41775);let R={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:240,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:1e3,delay:0,loopDelay:0,ease:"out(2)",composition:c.replace,modifier:C,onBegin:T,onBeforeUpdate:T,onUpdate:T,onLoop:T,onPause:T,onComplete:T,onRender:T},L={current:null,root:s},M={defaults:R,precision:4,timeScale:1,tickThreshold:200,editor:null},W={version:"4.5.0",engine:null};n&&(o.AnimeJS||(o.AnimeJS=[]),o.AnimeJS.push(W)),e.s(["defaults",0,R,"globalVersions",0,W,"globals",0,M,"scope",0,L],64936);let U=e=>e.replace(E,"$1-$2").toLowerCase(),O=(e,t)=>0===e.indexOf(t),j=Date.now,q=Array.isArray,B=e=>e&&e.constructor===Object,V=e=>"number"==typeof e&&!isNaN(e),G=e=>"string"==typeof e,F=e=>"function"==typeof e,H=e=>void 0===e,J=e=>H(e)||null===e,$=e=>n&&e instanceof SVGElement,X=e=>k.test(e),K=e=>O(e,"rgb"),Y=e=>O(e,"hsl"),Q=e=>X(e)||(K(e)||Y(e))&&(")"===e[e.length-1]||!_.test(e)),Z=e=>!M.defaults.hasOwnProperty(e),ee=["opacity","rotate","overflow","color"],et=(e,t)=>{if(ee.includes(t))return!1;if(e.getAttribute(t)||t in e){if("scale"===t){let t=e.parentNode;return t&&"filter"===t.tagName}return!0}},er=Math.pow,ei=Math.sqrt,ea=Math.sin,en=Math.cos,eo=Math.abs,es=Math.exp,el=Math.floor,eu=Math.asin,ed=Math.PI,ec=Math.round,eg=(e,t,r)=>e<t?t:e>r?r:e,ep=(e,t)=>{if(t<0)return e;if(!t)return ec(e);let r=10**t;return ec(e*r)/r},em=(e,t,r)=>1===r?t:0===r?e:e+(t-e)*r,eb=e=>e===1/0?1e12:e===-1/0?-1e12:e,eh=e=>e<=1e-11?1e-11:eb(ep(e,11)),ef=e=>q(e)?[...e]:e,ex=(e,t)=>{let r={...e};for(let i in t){let a=e[i];r[i]=H(a)?t[i]:a}return r},ev=(e,t,r,i="_prev",a="_next")=>{let n=e._head,o=a;for(r&&(n=e._tail,o=i);n;){let e=n[o];t(n),n=e}},ew=(e,t,r="_prev",i="_next")=>{let a=t[r],n=t[i];a?a[i]=n:e._head=n,n?n[r]=a:e._tail=a,t[r]=null,t[i]=null},ey=(e,t,r,i="_prev",a="_next")=>{let n=e._tail;for(;n&&r&&r(n,t);)n=n[i];let o=n?n[a]:e._head;n?n[a]=t:e._head=t,o?o[i]=t:e._tail=t,t[i]=n,t[a]=o};function eT(e){let t=G(e)?L.root.querySelectorAll(e):e;if(t instanceof NodeList||t instanceof HTMLCollection)return t}function eC(e){let t=function(e){if(J(e))return[];if(!n)return q(e)&&e.flat(1/0)||[e];if(q(e)){let t=e.flat(1/0),r=[];for(let e=0,i=t.length;e<i;e++){let i=t[e];if(!J(i)){let e=eT(i);if(e)for(let t=0,i=e.length;t<i;t++){let i=e[t];if(!J(i)){let e=!1;for(let t=0,a=r.length;t<a;t++)if(r[t]===i){e=!0;break}e||r.push(i)}}else{let e=!1;for(let t=0,a=r.length;t<a;t++)if(r[t]===i){e=!0;break}e||r.push(i)}}}return r}let t=eT(e);return t?Array.from(t):[e]}(e),r=t.length;for(let e=0;e<r;e++){let r=t[e];if(!r[g]){r[g]=!0;let e=$(r);(r.nodeType||e)&&(r[p]=!0,r[m]=e,r[b]={})}}return t}e.s(["PI",0,ed,"abs",0,eo,"addChild",0,ey,"asin",0,eu,"clamp",0,eg,"clampInfinity",0,eb,"cloneArray",0,ef,"cos",0,en,"exp",0,es,"floor",0,el,"forEachChildren",0,ev,"isArr",0,q,"isCol",0,Q,"isFnc",0,F,"isHex",0,X,"isHsl",0,Y,"isKey",0,Z,"isNil",0,J,"isNum",0,V,"isObj",0,B,"isRgb",0,K,"isStr",0,G,"isSvg",0,$,"isUnd",0,H,"isValidSVGAttribute",0,et,"lerp",0,em,"mergeObjects",0,ex,"normalizeTime",0,eh,"now",0,j,"parseNumber",0,e=>G(e)?parseFloat(e):e,"pow",0,er,"removeChild",0,ew,"round",0,ep,"sin",0,ea,"sqrt",0,ei,"stringStartsWith",0,O,"toLowerCase",0,U],12973),e.s(["registerTargets",0,eC],91947);let e_=[];function ek(e,t){if(!e)return null;let r=e_.length;e:for(let i=0;i<r;i++){let r=e_[i];if(r.detect&&!r.detect(e))continue;let a=r.targetAdapters;for(let r=0,i=a.length;r<i;r++){let i=a[r];if(i.detect(e)){let r=i.props[t];if(r&&(!r.gate||r.gate(e)))return r;break e}}}for(let i=0;i<r;i++){let r=e_[i];if(r.detect&&!r.detect(e))continue;let a=r.propertyResolvers;for(let r=0,i=a.length;r<i;r++){let i=a[r](e,t);if(i)return i}}return null}let eS=e=>{let t="";for(let r=0,i=w.length;r<i;r++){let i=w[r],a=e[i];if(void 0!==a){if("translateX"===i){let i=e.translateY;if(void 0!==i){let n=e.translateZ;void 0!==n?(t+=`translate3d(${a},${i},${n}) `,r+=2):(t+=`translate(${a},${i}) `,r+=1);continue}}if("scaleX"===i&&void 0===e.scale){let i=e.scaleY;if(void 0!==i){let n=e.scaleZ;void 0!==n?(t+=`scale3d(${a},${i},${n}) `,r+=2):(t+=`scale(${a},${i}) `,r+=1);continue}}t+=`${y[i]}${a}) `}"rotateZ"===i&&void 0!==e.rotate3d&&(t+=`rotate3d(${e.rotate3d}) `)}return void 0!==e.matrix&&(t+=`matrix(${e.matrix}) `),void 0!==e.matrix3d&&(t+=`matrix3d(${e.matrix3d}) `),t},eN=(e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e),eA=(e,t)=>
1H(e)?t:e,eD=(e,t)=>{let r=e.match(z),i=t[p]?t:document.documentElement,a=getComputedStyle(i)?.getPropertyValue(r[1]);return(!a||""===a.trim())&&r[2]&&(a=r[2].trim()),a||0},eP=(e,t,r,i,a,n)=>{if(F(e)){if(!a){let a=e(t,r,i,n);return isNaN(+a)?a||0:+a}let o=()=>{let a=e(t,r,i,n);return isNaN(+a)?a||0:+a};return a.func=o,o()}if(G(e)&&O(e,f)){if(!a)return eD(e,t);let r=()=>eD(e,t);return a.func=r,r()}return e},eI=(e,t)=>e[p]?e[m]&&et(e,t)?l.ATTRIBUTE:w.includes(t)||v.get(t)?l.TRANSFORM:O(t,"--")?l.CSS_VAR:t in e.style?l.CSS:t in e?l.OBJECT:l.ATTRIBUTE:l.OBJECT,eE=(e,t,r)=>{let i=e.style[t];i&&r&&(r[t]=i);let a=i||getComputedStyle(e[h]||e).getPropertyValue(t);return"auto"===a?"0":a},ez=(e,t,r,i)=>{let a=H(r)?eI(e,t):r,n=ek(e,t);if(n){let r=n.get(e);return r&&i&&(i[t]=r),null==r?0:r}if(a===l.OBJECT){let r=e[t];return r&&i&&(i[t]=r),r||0}if(a===l.ATTRIBUTE){let r=e.getAttribute(t);return r&&i&&(i[t]=r),r}return a===l.TRANSFORM?((e,t,r)=>{let i=e.style.transform;if(i){let a,n=e[b],o=0,s=i.length;for(;o<s;){for(;o<s&&32===i.charCodeAt(o);)o++;if(o>=s)break;let e=o;for(;o<s&&40!==i.charCodeAt(o);)o++;if(o>=s)break;let t=i.substring(e,o),r=1,l=o+1,u=-1,d=-1;for(o++;o<s&&r>0;){let e=i.charCodeAt(o);40===e?r++:41===e?r--:44===e&&1===r&&(-1===u?u=o:-1===d&&(d=o)),o++}let c=o-1;"translate"===t||"translate3d"===t?(-1===u?n.translateX=i.substring(l,c).trim():(n.translateX=i.substring(l,u).trim(),-1===d?n.translateY=i.substring(u+1,c).trim():(n.translateY=i.substring(u+1,d).trim(),n.translateZ=i.substring(d+1,c).trim())),a=i.substring(l,c)):"scale"===t||"scale3d"===t?-1===u?n.scale=i.substring(l,c).trim():(n.scaleX=i.substring(l,u).trim(),-1===d?n.scaleY=i.substring(u+1,c).trim():(n.scaleY=i.substring(u+1,d).trim(),n.scaleZ=i.substring(d+1,c).trim())):n[t]=i.substring(l,c)}if("translate3d"===t&&a)return r&&(r[t]=a),a;let l=n[t];if(!H(l))return r&&(r[t]=l),l}return"translate3d"===t?"0px, 0px, 0px":"rotate3d"===t?"0, 0, 0, 0deg":O(t,"scale")?"1":O(t,"rotate")||O(t,"skew")?"0deg":"0px"})(e,t,i):a===l.CSS_VAR?eE(e,t,i).trimStart():eE(e,t,i)},eR=(e,t,r)=>"-"===r?e-t:"+"===r?e+t:e*t,eL=()=>({t:u.NUMBER,n:0,u:null,o:null,d:null,s:null}),eM=(e,t)=>{if(t.t=u.NUMBER,t.n=0,t.u=null,t.o=null,t.d=null,t.s=null,!e)return t;let r=+e;if(!isNaN(r))return t.n=r,t;let i=e;"="===i[1]&&(t.o=i[0],i=i.slice(2));let a=!i.includes(" ")&&I.exec(i);if(a)return t.t=u.UNIT,t.n=+a[1],t.u=a[2],t;if(t.o)return t.n=+i,t;if(Q(i)){var n;let e,r,a,o;return t.t=u.COLOR,t.d=K(n=i)?(r=H((e=S.exec(n)||N.exec(n))[4])?1:+e[4],[+e[1],+e[2],+e[3],r]):X(n)?(o=4===(a=n.length)||5===a,[+("0x"+n[1]+n[o?1:2]),+("0x"+n[o?2:3]+n[o?2:4]),+("0x"+n[o?3:5]+n[o?3:6]),5===a||9===a?+(("0x"+n[o?4:7]+n[o?4:8])/255).toFixed(3):1]):Y(n)?(e=>{let t,r,i,a=A.exec(e)||D.exec(e),n=a[1]/360,o=a[2]/100,s=a[3]/100,l=H(a[4])?1:+a[4];if(0===o)t=r=i=s;else{let e=s<.5?s*(1+o):s+o-s*o,a=2*s-e;t=ep(255*eN(a,e,n+1/3),0),r=ep(255*eN(a,e,n),0),i=ep(255*eN(a,e,n-1/3),0)}return[t,r,i,l]})(n):[0,0,0,1],t}{let e=i.match(P);return t.t=u.COMPLEX,t.d=e?e.map(Number):[],t.s=i.split(P)||[],t}},eW=(e,t)=>(t.t=e._valueType,t.n=e._toNumber,t.u=e._unit,t.o=null,t.d=ef(e._toNumbers),t.s=ef(e._strings),t),eU=eL(),eO=(e,t,r)=>{let i=e._modifier,a=e._fromNumbers,n=e._toNumbers,o=e._strings,s=o[0];for(let l=0,u=n.length;l<u;l++){let u=i(ep(em(a[l],n[l],t),r)),d=o[l+1];s+=`${d?u+d:u}`,e._numbers[l]=u}return s};e.s(["composeComplexValue",0,eO,"createDecomposedValueTargetObject",0,eL,"decomposeRawValue",0,eM,"decomposeTweenValue",0,eW,"decomposedOriginalValue",0,eU,"getFunctionValue",0,eP,"getOriginalAnimatableValue",0,ez,"getRelativeValue",0,eR,"getTweenType",0,eI,"setValue",0,eA],46236);let ej={},eq=(e,t,r)=>{if(r===l.TRANSFORM)return v.get(e)||e;if(!(r===l.CSS||r===l.ATTRIBUTE&&$(t)&&e in t.style))return e;{let t=ej[e];if(t)return t;{let t=e?U(e):e;return ej[e]=t,t}}},eB=(e,t=!1)=>(e._hasChildren?ev(e,e=>eB(e,t),!0):(e.pause(),ev(e,r=>{let i=r.property,a=r.target,n=r._tweenType,o=r._inlineValue,s=J(o)||""===o;if(r._setter){if(!t&&!s){if(eM(o,eU),eU.d){let e=eU.d,t=r._numbers;for(let r=0,i=e.length;r<i;r++)t[r]=e[r]}else r._number=eU.n;r._setter(r.target,r._number,r)}}else if(n===l.OBJECT)t||s||(a[i]=o);else if(a[p])if(n===l.ATTRIBUTE)t||(s?a.removeAttribute(i):a.setAttribute(i,o));else{let e=a.style;if(n===l.TRANSFORM){let t=a[b];s?delete t[i]:t[i]=o,r._renderTransforms&&(Object.keys(t).length?e.transform=eS(t):e.removeProperty("transform"))}else s?e.removeProperty(U(i)):e[i]=o}
1a[p]&&e._tail===r&&e.targets.forEach(e=>{e.getAttribute&&""===e.getAttribute("style")&&e.removeAttribute("style")})})),e),eV={deg:1,rad:180/ed,turn:360},eG={},eF=(e,t,r,i=!1)=>{let a=t.u,n=t.n;if(t.t===u.UNIT&&a===r)return t;let o=n+a+r,l=eG[o];if(H(l)||i){let i;if(a in eV)i=n*eV[a]/eV[r];else{let t=e.cloneNode(),o=e.parentNode,l=o&&o!==s?o:s.body;l.appendChild(t);let u=t.style;u.width=100+a;let d=t.offsetWidth||100;u.width=100+r;let c=t.offsetWidth||100;l.removeChild(t),i=d/c*n}t.n=i,eG[o]=i}else t.n=l;return t.t,u.UNIT,t.u=r,t},eH=e=>e,eJ=(e=1.68)=>t=>er(t,+e),e$={in:e=>t=>e(t),out:e=>t=>1-e(1-t),inOut:e=>t=>t<.5?e(2*t)/2:1-e(-2*t+2)/2,outIn:e=>t=>t<.5?(1-e(1-2*t))/2:(e(2*t-1)+1)/2},eX=ed/2,eK=2*ed,eY={"":eJ,Quad:eJ(2),Cubic:eJ(3),Quart:eJ(4),Quint:eJ(5),Sine:e=>1-en(e*eX),Circ:e=>1-ei(1-e*e),Expo:e=>e?er(2,10*e-10):0,Bounce:e=>{let t,r=4;for(;e<((t=er(2,--r))-1)/11;);return 1/er(4,3-r)-7.5625*er((3*t-2)/22-e,2)},Back:(e=1.7)=>t=>(+e+1)*t*t*t-e*t*t,Elastic:(e=1,t=.3)=>{let r=eg(+e,1,10),i=eg(+t,1e-11,2),a=i/eK*eu(1/r),n=eK/i;return e=>0===e||1===e?e:-r*er(2,-10*(1-e))*ea((1-e-a)*n)}},eQ=(()=>{let e={linear:eH,none:eH};for(let t in e$)for(let r in eY){let i=eY[r],a=e$[t];e[t+r]=""===r||"Back"===r||"Elastic"===r?(e,t)=>a(i(e,t)):a(i)}return e})(),eZ={linear:eH,none:eH},e0=["steps(","irregular(","linear(","cubicBezier("],e5=e=>{if(G(e)){for(let t=0,r=e0.length;t<r;t++)if(O(e,e0[t]))return console.warn(`String syntax for \`ease: "${e}"\` has been removed from the core and replaced by importing and passing the easing function directly: \`ease: ${e}\``),eH}return F(e)?e:G(e)?(e=>{if(eZ[e])return eZ[e];if(-1>=e.indexOf("(")){let t=e$[e]||e.includes("Back")||e.includes("Elastic")?eQ[e]():eQ[e];return t?eZ[e]=t:eH}{let t=e.slice(0,-1).split("("),r=eQ[t[0]];return r?eZ[e]=r(...t[1].split(",")):eH}})(e):eH};e.s(["parseEase",0,e5],45641);let e2=(e,t,r,i,a)=>{let n=e.parent,o=e.duration,s=e.completed,g=e.iterationDuration,p=e.iterationCount,m=e._currentIteration,h=e._loopDelay,f=e._reversed,x=e._alternate,v=e._hasChildren,w=e._delay,y=e._currentTime,T=w+g,C=t-w,_=eg(y,-w,o),k=eg(C,-w,o),S=C-y,N=k>0,A=k>=o,D=o<=1e-11,P=a===d.FORCE,I=0,E=C,z=0;if(p>1){let t=g+(A?0:h),r=~~(k/t);e._currentIteration=eg(r,0,p),A&&e._currentIteration--,I=e._currentIteration%2,E=k-r*t||0}let R=f^(x&&I),L=e._ease,W=A?R?0:o:R?g-E:E;L&&(W=g*L(W/g)||0);let U=(n?n.backwards:C<y)?!R:!!R;if(e._currentTime=C,e._iterationTime=W,e.backwards=U,N&&!e.began?(e.began=!0,r||n&&(U||!n.began)||e.onBegin(e)):C<=0&&(e.began=!1),r||v||!N||e._currentIteration===m||e.onLoop(e),P||a===d.AUTO&&(t>=(n&&w>0?0:w)&&t<=T||t<=w&&_>w||t>=T&&_!==o)||W>=T&&_!==o||W<=w&&_>0&&!A||t<=_&&_===o&&s||A&&!s&&D){if(N&&(e.computeDeltaTime(_),r||e.onBeforeUpdate(e)),!v){let t,a,o,s,d=P||(U?-1*S:S)>=M.tickThreshold,g=ep(e._offset+(n?n._offset:0)+w+W,12),p=e._head,m=0;for(;p;){let e=p._composition,r=p._currentTime,n=p._changeDuration,h=p._absoluteStartTime+p._changeDuration,f=p._nextRep,x=p._prevRep,v=e!==c.none,w=x?x._absoluteStartTime+x._changeDuration:0,y=x&&x.parent!==p.parent,T=!f||f._isOverridden?h:f.parent===p.parent?h+f._delay:f._absoluteStartTime<f._absoluteUpdateStartTime?f._absoluteStartTime:f._absoluteUpdateStartTime;if((d||(r!==n||g<=T||x&&!y&&(!f||f.parent!==p.parent))&&(0!==r||g>=p._absoluteStartTime||y&&!p._hasFromValue&&!x._isOverridden&&g>=w||f&&!f._isOverridden&&f.parent===p.parent&&0!==f._currentTime&&W<f._startTime))&&(!x||y||W>=p._startTime)&&(!v||!p._isOverridden&&(!p._isOverlapped||g<=h)&&(!f||f._isOverridden||g<=T)&&(!x||x._isOverridden||(y?g>=p._absoluteStartTime||!p._hasFromValue&&g>=w:g>=w+p._delay)))){let r,d,g=p._currentTime=eg(W-p._startTime,0,n),h=p._ease(g/p._updateDuration),f=p._modifier,x=p._valueType,w=p._tweenType,y=w===l.OBJECT,T=x===u.NUMBER,C=T&&y||0===h||1===h?-1:M.precision;if(T)r=d=f(ep(em(p._fromNumber,p._toNumber,h),C));else if(x===u.UNIT)d=f(ep(em(p._fromNumber,p._toNumber,h),C)),r=`${d}${p._unit}`;else if(x===u.COLOR){let e=p._numbers,t=p._fromNumbers,a=p._toNumbers,n=1-h,o=t[0],s=t[1],l=t[2],u=a[0],d=a[1],c=a[2];e[0]=f(Math.sqrt(o*o*n+u*u*h)),e[1]=f(Math.sqrt(s*s*n+d*d*h)),e[2]=f(Math.sqrt(l*l*n+c*c*h)),e[3]=f(em(t[3],a[3],h)),(!p._setter||i)&&(r=`rgba(${ep(e[0],0)},${ep(e[1],0)},${ep(e[2],0)},${e[3]})`)}else x===u.COMPLEX&&(r=eO(p,h,C));if(v&&(p._number=d),i||e===c.blend)p._value=r;else{let e=p.property;t=p.target,p._setter?p._setter(t,d,p):y?t[e]=r:w===l.ATTRIBUTE?t.setAttribute(e,r):(a=t.style,w===l.TRANSFORM?(t!==o&&(o=t,s=t[b]),s[e]=r,m=1):w===l.CSS?a[e]=r:w===l.CSS_VAR&&a.setProperty(e,r)),N&&(z=1)}}else r&&x&&!y&&W<p._startTime&&(p._currentTime=0);
1m&&p._renderTransforms&&(a.transform=eS(s),m=0),p=p._next}!r&&z&&e.onRender(e)}!r&&N&&e.onUpdate(e)}return n&&D?!r&&(n.began&&!U&&C>0&&!s||U&&C<=1e-11&&s)&&(e.onComplete(e),e.completed=!U):N&&A?p===1/0?e._startTime+=e.duration:e._currentIteration>=p-1&&(e.paused=!0,!s&&!v&&(e.completed=!0,r||n&&(U||!n.began)||(e.onComplete(e),e._resolve(e)))):e.completed=!1,z},e1=(e,t,r,i,a)=>{let n=e._currentIteration;if(e2(e,t,r,i,a),e._hasChildren){let o=e.backwards,s=i?t:e._iterationTime,l=j(),u=0,c=!0;if(!i&&e._currentIteration!==n){let t=e.iterationDuration;ev(e,e=>{if(o){let i=e.duration,a=e._offset+e._delay;r||!(i<=1e-11)||a&&a+i!==t||e.onComplete(e)}else e.completed||e.backwards||!(e._currentTime<e.iterationDuration)||e2(e,t,r,1,d.FORCE),e.began=!1,e.completed=!1}),r||e.onLoop(e)}ev(e,t=>{let n=ep((s-t._offset)*t._speed,12);if(o&&n>t._delay+t.duration)return;let d=t._fps<e._fps?t.requestTick(l):a;u+=e2(t,n,r,i,d),!t.completed&&c&&(c=!1)},o),!r&&u&&e.onRender(e),(c||o)&&e._currentTime>=e.duration&&(e.paused=!0,!e.completed&&(e.completed=!0,r||(e.onComplete(e),e._resolve(e))))}};class e3{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=1e3/240,this._fps=240,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(e){let t=+e,r=t<1e-11?1e-11:t;r>R.frameRate&&(R.frameRate=r),this._fps=r,this._frameDuration=1e3/r}get speed(){return this._speed}set speed(e){let t=+e;this._speed=t<1e-11?1e-11:t}requestTick(e){let t=this._frameDuration,r=e-this._lastTickTime,i=.25*t;return r+(i<4?i:4)<t?d.NONE:(this._lastTickTime=r>=t?e-r%t:e,d.AUTO)}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t}}let e6={animation:null,update:T},e4=n?requestAnimationFrame:setImmediate,e8=n?cancelAnimationFrame:clearImmediate,e9=(a=new class e extends e3{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=R,this.paused=!0,this.reqId=0}update(){let e=this._currentTime=j();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,r=this._fps,i=this._head;for(;i;){let a=i._next;i.paused?(ew(this,i),this._hasChildren=!!this._tail,i._running=!1,i.completed&&!i._cancelled&&i.cancel()):e1(i,(e-i._startTime)*i._speed*t,0,0,i._fps<r?i.requestTick(e):d.AUTO),i=a}e6.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(j()),this.reqId=e4(e7)),this}pause(){if(this.reqId)return this.paused=!0,te()}resume(){if(this.paused)return this.paused=!1,ev(this,e=>e.resetTime()),this.wake()}get speed(){return this._speed*(1===M.timeScale?1:1e3)}set speed(e){let t=e*M.timeScale;this._speed!==t&&(this._speed=t,ev(this,e=>e.speed=e._speed))}get timeUnit(){return 1===M.timeScale?"ms":"s"}set timeUnit(e){let t="s"===e,r=t?.001:1;if(M.timeScale!==r){M.timeScale=r,M.tickThreshold=200*r;let e=t?.001:1e3;this.defaults.duration*=e,this._speed*=e}}get precision(){return M.precision}set precision(e){M.precision=e}}(j()),n&&(W.engine=a,s.addEventListener("visibilitychange",()=>{a.pauseOnDocumentHidden&&(s.hidden?a.pause():a.resume())})),a),e7=()=>{e9._head?(e9.reqId=e4(e7),e9.update()):e9.reqId=0},te=()=>(e8(e9.reqId),e9.reqId=0,e9),tt={_rep:new WeakMap,_add:new Map},tr=(e,t,r="_rep")=>{let i=tt[r],a=i.get(e);return a||(a={},i.set(e,a)),a[t]?a[t]:a[t]={_head:null,_tail:null}},ti=(e,t)=>e._isOverridden||e._absoluteStartTime>t._absoluteStartTime,ta=e=>{e._isOverlapped=1,e._isOverridden=1,e._changeDuration=1e-11,e._currentTime=1e-11},tn=(e,t)=>{let r=e._composition;if(r===c.replace){let r=e._absoluteStartTime;ey(t,e,ti,"_prevRep","_nextRep");let i=e._prevRep;if(i){let t=i.parent,a=i._absoluteEndTime;if(e.parent.id!==t.id&&t.iterationCount>1&&a+(t.duration-t.iterationDuration)>r){ta(i);let e=i._prevRep;for(;e&&e.parent.id===t.id;)ta(e),e=e._prevRep}let n=e._absoluteUpdateStartTime;if(a>n){let e=i._startTime,t=ep(n-(a-(e+i._updateDuration))-e,12);i._changeDuration=t,i._currentTime=t,i._isOverlapped=1,t<1e-11&&ta(i)}let o=e.parent.parent;if(!o||o!==t.parent){let e=!0;if(ev(t,t=>{t._isOverlapped||(e=!1)}),e){let e=t.parent;if(e){let r=!0;ev(e,e=>{e!==t&&ev(e,e=>{e._isOverlapped||(r=!1)})}),r&&e.cancel()}else t.cancel()}}}}else if(r===c.blend){var i;let t,r=tr(e.target,e.property,"_add"),a=(i=tt._add,(t=e6.animation)||(e6.animation=t={duration:1e-11,computeDeltaT
1ime:T,_offset:0,_delay:0,_head:null,_tail:null},e6.update=()=>{i.forEach(e=>{for(let t in e){let r=e[t],i=r._head;if(i){let e=i._valueType,t=e===u.COMPLEX||e===u.COLOR?ef(i._fromNumbers):null,a=i._fromNumber,n=r._tail;for(;n&&n!==i;){if(t)for(let e=0,r=n._numbers.length;e<r;e++)t[e]+=n._numbers[e];else a+=n._number;n=n._prevAdd}i._toNumber=a,i._toNumbers=t}}}),e2(t,1,1,0,d.FORCE)}),t),n=r._head;n||((n={...e})._composition=c.replace,n._updateDuration=1e-11,n._startTime=0,n._numbers=ef(e._fromNumbers),n._number=0,n._next=null,n._prev=null,ey(r,n),ey(a,n));let o=e._toNumber;if(e._fromNumber=n._fromNumber-o,e._toNumber=0,e._numbers=ef(e._fromNumbers),e._number=0,n._fromNumber=o,e._toNumbers.length){let t=ef(e._toNumbers);t.forEach((t,r)=>{e._fromNumbers[r]=n._fromNumbers[r]-t,e._toNumbers[r]=0}),n._fromNumbers=t}ey(r,e,null,"_prevAdd","_nextAdd")}return e},to=e=>{let t=e._composition;if(t!==c.none){let r=e.target,i=e.property;if(ew(tt._rep.get(r)[i],e,"_prevRep","_nextRep"),t===c.blend){let t=tt._add,a=t.get(r);if(!a)return;let n=a[i],o=e6.animation;ew(n,e,"_prevAdd","_nextAdd");let s=n._head;if(s&&s===n._tail){ew(n,s,"_prevAdd","_nextAdd"),ew(o,s);let e=!0;for(let t in a)if(a[t]._head){e=!1;break}e&&t.delete(r)}}}return e},ts=e=>(e.paused=!0,e.began=!1,e.completed=!1,e),tl=e=>(e._cancelled&&(e._hasChildren?ev(e,tl):ev(e,e=>{e._composition!==c.none&&tn(e,tr(e.target,e.property))}),e._cancelled=0),e),tu=0,td=(e,t)=>e._priority>t._priority;class tc extends e3{constructor(e={},t=null,r=0){super(0),++tu;const{id:i,delay:a,duration:n,reversed:o,alternate:s,loop:l,loopDelay:u,autoplay:d,frameRate:c,playbackRate:g,priority:p,onComplete:m,onLoop:b,onPause:h,onBegin:f,onBeforeUpdate:x,onUpdate:v}=e;L.current&&L.current.register(this);const w=t?0:e9._lastTickTime,y=t?t.defaults:M.defaults,C=F(a)||H(a)?y.delay:+a,_=F(n)||H(n)?1/0:+n,k=eA(l,y.loop),S=eA(u,y.loopDelay);let N=!0===k||k===1/0||k<0?1/0:k+1,A=0;t?A=r:(e9.reqId||e9.requestTick(j()),A=(e9._lastTickTime-e9._startTime)*M.timeScale),this.id=H(i)?tu:i,this.parent=t,this.duration=eb((_+S)*N-S)||1e-11,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=f||y.onBegin,this.onBeforeUpdate=x||y.onBeforeUpdate,this.onUpdate=v||y.onUpdate,this.onLoop=b||y.onLoop,this.onPause=h||y.onPause,this.onComplete=m||y.onComplete,this.iterationDuration=_,this.iterationCount=N,this._autoplay=!t&&eA(d,y.autoplay),this._offset=A,this._delay=C,this._loopDelay=S,this._iterationTime=0,this._currentIteration=0,this._resolve=T,this._running=!1,this._reversed=+eA(o,y.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=eA(s,y.alternate),this._prev=null,this._next=null,this._lastTickTime=w,this._startTime=w,this._lastTime=w,this._fps=eA(c,y.frameRate),this._speed=eA(g,y.playbackRate),this._priority=+eA(p,1)}get cancelled(){return!!this._cancelled}set cancelled(e){e?this.cancel():this.reset(!0).play()}get currentTime(){return eg(ep(this._currentTime,M.precision),-this._delay,this.duration)}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume()}get iterationCurrentTime(){return eg(ep(this._iterationTime,M.precision),0,this.iterationDuration)}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e}get progress(){return eg(ep(this._currentTime/this.duration,10),0,1)}set progress(e){this.currentTime=this.duration*e}get iterationProgress(){return eg(ep(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e}get currentIteration(){return this._currentIteration}set currentIteration(e){this.currentTime=this.iterationDuration*eg(+e,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(e){e?this.reverse():this.play()}get speed(){return super.speed}set speed(e){super.speed=e,this.resetTime()}reset(e=!1){return tl(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,e1(this,0,1,~~e,d.FORCE),ts(this),this._hasChildren&&ev(this,ts),this}init(e=!1){this.fps=this._fps,this.speed=this._speed,!e&&this._hasChildren&&e1(this,this.duration,1,~~e,d.FORCE),this.reset(e);let t=this._autoplay;return!0===t?this.resume():t&&!H(t.linked)&&t.link(this),this}resetTime(){let e=1/(this._speed*e9._speed);return this._startTime=j()-(this._currentTime+this._delay)*e,this}pause(){return this.paused||(this.paused=!0,this.onPause(this)),this}resume(){return this.paused&&(this.paused=!1,this.duration<=1e-11&&!this._hasChildren?e1(this,1e-11,0,0,d.FORCE):(this._running||(ey(e9,this,td),e9._hasChildren=!0,this._running=!0),this.resetTime(),this._startTime-=12,e9.wake())),this}restart(){return this.reset().resume()}seek(e,t=0,r=0){tl(this),this.completed=!1;let i=this.paused;return this.paused=!0,e1(this,e+this._delay,~~t,~~r,d.AUTO),i?this:this.resume()}alternate(){let e=this._reversed,t=this.iterationCount,r=this.iterationDuration,i=t===1/0?el(1e12/r):t;return this._reversed=+(this._alternate&&!(i%2)?e:!e),t===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(r*i-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?ev(this,e=>e.cancel(),!0):ev(this,to),this._cancelled=1,this.pause()}stretch(e){let t=this.duration,r=eh(e);if(t===r)return this;let i=e/t,a=e<=1e-11;return this.duration=a?1e-11:r,this.iterationDuration=a?1e-11:eh(this.iterationDuration*i),this._offset*=i,this._delay*=i,this._loopDelay*=i,this}revert(){e1(this,0,1,0,d.AUTO);let e=this._autoplay;return e&&e.linked&&e.linked===this&&e.revert(),this.cancel()}complete(e=0){return this.seek(this.duration,e).cancel()}then(e=T){let t=this.then,r=()=>{this.then=null,e(this),this.then=t,this._resolve=T};return new Promise(e=>(this._resolve=()=>e(r()),this.completed&&this._resolve(),this))}}let tg=eL(),tp=eL(),tm={},tb={func:null},th={func:null},tf=[null],tx=[null,null],tv={to:null},tw=0,ty=0;class tT extends tc{constructor(e,i,a,n,o=!1,s=0,d){super(i,a,n),this._head,this._tail,++ty;const g=eC(e),p=g.length,m=i.keyframes,b=m?ex(((e,t)=>{let r={};if(q(e)){let t=[].concat(...e.map(e=>Object.keys(e))).filter(Z);for(let i=0,a=t.length;i<a;i++){let a=t[i],n=e.map(e=>{let t={};for(let r in e){let i=e[r];Z(r)?r===a&&(t.to=i):t[r]=i}return t});r[a]=n}}else{let i=eA(t.duration,M.defaults.duration);for(let t in Object.keys(e).map(t=>({o:parseFloat(t)/100,p:e[t]})).sort((e,t)=>
1e.o-t.o).forEach(e=>{let t=e.o,a=e.p;for(let e in a)if(Z(e)){let n=r[e];n||(n=r[e]=[]);let o=t*i,s=n.length,l=n[s-1],u={to:a[e]},d=0;for(let e=0;e<s;e++)d+=n[e].duration;1===s&&(u.from=l.to),a.ease&&(u.ease=a.ease),u.duration=o-(s?d:0),n.push(u)}return e}),r){let e,i=r[t];for(let t=0,r=i.length;t<r;t++){let r=i[t],a=r.ease;r.ease=e||void 0,e=a}i[0].duration||i.shift()}}return r})(m,i),i):i,{id:h,delay:f,duration:v,ease:w,playbackEase:y,modifier:T,composition:C,onRender:_}=b,k=a?a.defaults:M.defaults,S=eA(w,k.ease),N=eA(y,k.playbackEase),A=N?e5(N):null,D=!H(S.ease),P=D?S.ease:eA(w,A?"linear":k.ease),I=D?S.settlingDuration:eA(v,k.duration),E=eA(f,k.delay),z=T||k.modifier,R=H(C)&&p>=1e3?c.none:H(C)?k.composition:C,L=this._offset+(a?a._offset:0);D&&(S.parent=this);let W=NaN,U=NaN,O=0,j=0;for(let e=0;e<p;e++){const i=g[e],n=s||e,p=d||g;let m=NaN,h=NaN;for(let e in b)if(Z(e)){const s=eI(i,e),d=ek(i,e),g=eq(e,i,s);let f=b[e];const v=q(f);if(o&&!v&&(tx[0]=f,tx[1]=f,f=tx),v){const e=f.length,r=!B(f[0]);2===e&&r?(tv.to=f,tf[0]=tv,t=tf):e>2&&r?(t=[],f.forEach((e,r)=>{r?1===r?(tx[1]=e,t.push(tx)):t.push(e):tx[0]=e})):t=f}else tf[0]=f,t=tf;let w=null,y=null,T=NaN,C=0,_=0;for(let e=t.length;_<e;_++){let o;const l=t[_];B(l)?r=l:(tv.to=l,r=tv),tb.func=null,th.func=null;const m=eP(eA(r.composition,R),i,n,p,null,null),b=V(m)?m:c[m];w||b===c.none||(w=tr(i,g));const h=w?w._tail:null,f=a&&h&&h.parent.parent===a?h:y,v=eP(r.to,i,n,p,tb,f);B(v)&&!H(v.to)?(r=v,o=v.to):o=v;const k=eP(r.from,i,n,p,th,f),S=r.ease||P,N=eP(S,i,n,p,null,f),A=F(N)||G(N)?N:S,D=!H(A)&&!H(A.ease),M=D?A.ease:A,W=D?A.settlingDuration:eP(eA(r.duration,e>1?eP(I,i,n,p,null,f)/e:I),i,n,p,null,f),U=eP(eA(r.delay,_?0:E),i,n,p,null,f),$=r.modifier||z,X=!H(k),K=!H(o),Y=q(o),Q=Y||X&&K,Z=y?C:0,ee=y?C+U:U,et=ep(L+ee,12),er=ep(L+Z,12);!j&&(X||Y)&&(j=1);let ei=y;if(b!==c.none){let e=w._head;for(;e&&e._absoluteStartTime<=et;)if(e._isOverridden||(ei=e),(e=e._nextRep)&&e._absoluteStartTime>=et)for(;e;)ta(e),e=e._nextRep}if(Q){eM(Y?eP(o[0],i,n,p,th,f):k,tg),eM(Y?eP(o[1],i,n,p,tb,f):o,tp);const e=ez(i,g,s,tm);tg.t===u.NUMBER&&(ei?ei._valueType===u.UNIT&&(tg.t=u.UNIT,tg.u=ei._unit):(eM(e,eU),eU.t===u.UNIT&&(tg.t=u.UNIT,tg.u=eU.u)))}else K?eM(o,tp):y?eW(y,tp):eM(a&&ei&&ei.parent.parent===a?ei._value:ez(i,g,s,tm),tp),X?eM(k,tg):y?eW(y,tg):eM(a&&ei&&ei.parent.parent===a?ei._value:ez(i,g,s,tm),tg);if(tg.o&&(tg.n=eR(ei?ei._toNumber:eM(ez(i,g,s,tm),eU).n,tg.n,tg.o)),tp.o&&(tp.n=eR(tg.n,tp.n,tp.o)),tg.t!==tp.t){if(tg.t===u.COMPLEX||tp.t===u.COMPLEX){const e=tg.t===u.COMPLEX?tg:tp,t=tg.t===u.COMPLEX?tp:tg;t.t=u.COMPLEX,t.s=ef(e.s),t.d=e.d.map(()=>t.n)}else if(tg.t===u.UNIT||tp.t===u.UNIT){const e=tg.t===u.UNIT?tg:tp,t=tg.t===u.UNIT?tp:tg;t.t=u.UNIT,t.u=e.u}else if(tg.t===u.COLOR||tp.t===u.COLOR){const e=tg.t===u.COLOR?tg:tp,t=tg.t===u.COLOR?tp:tg;t.t=u.COLOR,t.d=e.d.map(()=>0)}}if(tg.u!==tp.u){let e=tp.u?tg:tp;e=eF(i,e,tp.u?tp.u:tg.u,!1)}if(tp.d&&tg.d&&tp.d.length!==tg.d.length){const e=tg.d.length>tp.d.length?tg:tp,t=e===tg?tp:tg;t.d=e.d.map((e,r)=>H(t.d[r])?0:t.d[r]),t.s=ef(e.s)}const ea=ep(+W||1e-11,12);let en=tm[g];J(en)||(tm[g]=null);const eo=d?d.set:null;C=ep(ee+ea,12);const es=tg.d,el=tp.d,eu=tp.s,ed={parent:this,id:tw++,property:g,target:i,_value:null,_toFunc:tb.func,_fromFunc:th.func,_ease:e5(M),_fromNumbers:es?ef(es):x,_toNumbers:el?ef(el):x,_strings:eu?ef(eu):x,_fromNumber:tg.n,_toNumber:tp.n,_numbers:es?ef(es):x,_number:tg.n,_unit:tp.u,_modifier:$,_currentTime:0,_startTime:ee,_delay:+U,_updateDuration:ea,_changeDuration:ea,_absoluteStartTime:et,_absoluteUpdateStartTime:er,_absoluteEndTime:ep(L+C,12),_hasFromValue:X||Y?1:0,_tweenType:s,_setter:eo,_valueType:tp.t,_composition:b,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_inlineValue:en,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};b!==c.none&&tn(ed,w);const ec=ed._valueType;if(ec===u.COMPLEX)ed._value=eO(ed,1,-1);else if(ec===u.UNIT)ed._value=`${$(ed._toNumber)}${ed._unit}`;else if(ec===u.COLOR){const e=tp.d;ed._value=`rgba(${ep(e[0],0)},${ep(e[1],0)},${ep(e[2],0)},${e[3]})`}else ed._value=$(ed._toNumber);isNaN(T)&&(T=ed._startTime),y=ed,O++,ey(this,ed)}(isNaN(U)||T<U)&&(U=T),(isNaN(W)||C>W)&&(W=C),s===l.TRANSFORM&&(m=O-_,h=O)}if(!isNaN(m)){let e=0;ev(this,t=>{e>=m&&e<h&&(t._renderTransforms=1,t._composition===c.blend&&ev(e6.animation,e=>{e.id===t.id&&(e._renderTransforms=1)})),e++})}}p||console.warn("No target found. Make sure the element you're trying to animate is accessible before creating your animation."),U?(ev(this,e=>{e._startTime-e._delay||(e._delay-=U),e._startTime-=U}),W-=U):U=0,W||(W=1e-11,this.iterationCount=0),this.targets=g,this.id=H(h)?ty:h,this.duration=1e-11===W?1e-11:eb((W+this._loopDelay)*this.iterationCount-this._loopDelay)||1e-11,this.onRender=_||k.onRender,this._ease=A,this._delay=U,this.iterationDuration=W,!this._autoplay&&j&&this.onRender(this)}stretch(e){let t=this.duration;if(t===eh(e))return this;let r=e/t;return ev(this,e=>{e._updateDuration=eh(e._updateDuration*r),e._changeDuration=eh(e._changeDuration*r),e._currentTime*=r,e._delay*=r,e._startTime*=r,e._absoluteStartTime*=r,e._absoluteUpdateStartTime*=r,e._absoluteEndTime*=r}),super.stretch(e)}refresh(){return ev(this,e=>{let t=e._toFunc,r=e._fromFunc;(t||r)&&(r?(eM(r(),tg),tg.u!==e._unit&&e.target[p]&&eF(e.target,tg,e._unit,!0),e._fromNumbers=ef(tg.d),e._fromNumber=tg.n):t&&(eM(ez(e.target,e.property,e._tweenType),eU),e._fromNumbers=ef(eU.d),e._fromNumber=eU.n),t&&(eM(t(),tp),e._toNumbers=ef(tp.d),e._strings=ef(tp.s),e._toNumber=tp.o?eR(e._fromNumber,tp.n,tp.o):tp.n))}),1e-11===this.duration&&this.restart(),this}revert(){return super.revert(),eB(this)}then(e){return super.then(e)}}e.s(["animate",0,(e,t)=>M.editor?M.editor.addAnimation(e,t):new tT(e,t,null,0,!1).init()],5050)},75607,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(5050),a=e.i(41775),n=e.i(12973),o=e.i(45641),s=e.i(46236),l=e.i(91947);let u=(e=0,t=1,r=0)=>{let i=10**r;return Math.floor((Math.random()*(t-e+1/i)+e)*i)/i},d=0;e.s(["default",0,function({children:e}){let c=(0,r.useRef)(null);return(0,r.useEffect)(()=>{c.current&&(0,i.animate)(c.current.querySelectorAll("[data-reveal]"),{opacity:[0,1],translateY:[16,0],delay:((e={})=>{let t,r=[],i=0,c=null,g=e.from,p=e.reversed,m=e.ease,b=!(0,n.isUnd)(m),h=b&&!(0,n.isUnd)(m.ease)?m.ease:b?(0,o.parseEase)(m):null,f=e.grid,x=!0===f,v=e.axis,w=e.total,y=(0,n.isUnd)(g)||0===g||"first"===g,T="center"===g,C="last"===g,_="random"===g,k=(0,n.isArr)(g),S=(0,n.isArr)(90),N=e.use,A=S?(0,n.parseNumber)(90[0]):(0,n.parseNumber)(90),D=S?(0,n.parseNumber)(90[1]):0,P=a.unitsExecRgx.exec((S?90[1]:90)+a.emptyString),I=e.start||0+(S?A:0),E=e.seed,z=(0,n.isUnd)(E)||!1===E?u:((e,t=0,r=1,i=0)=>{let a=void 0===e?d++:e;return(e=t,n=r,o=i)=>{a+=0x6d2b79f5,a=Math.imul(a^a>>>15,1|a);let s=10**o;return Math.floor(((((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000*(n-e+1/s)+e)*s)/s}})(!0===E?0:E),R=e.jitter,L=!(0,n.isUnd)(R),M=(0,n.isArr)(R),W=M?R[0]:R||0,U=M?R[1]:R||0,O=y?0:(0,n.isNum)(g)?g:0;return(o,d,m,b,y)=>{let[E]=(0,l.registerTargets)(o),R=(0,n.isUnd)(w)?m.length:w,M=!(0,n.isUnd)(N)&&((0,n.isFnc)(N)?N(E,d,R):(0,s.getOriginalAnimatableValue)(E,N)),j=(0,n.isNum)(M)||(0,n.isStr)(M)&&(0,n.isNum)(+M)?+M:d,q=j>=0&&j<R?j:d;if(T&&(O=(R-1)/2),C&&(O=R-1),!r.length){if(x){let e=!0,t=!1,i=1/0,a=1/0,o=1/0,s=-1/0,l=-1/0,u=-1/0,d=[],c=[],p=[];for(let r=0;r<R;r++){let g=m[r],b=0,h=0,f=0,x=!1;if(g&&(0,n.isFnc)(g.getBoundingClientRect)){let e=g.getBoundingClientRect();b=e.left+e.width/2,h=e.top+e.height/2,x=!0}else g&&(0,n.isNum)(g.x)&&(0,n.isNum)(g.y)&&(b=g.x,h=g.y,(0,n.isNum)(g.z)&&(f=g.z,t=!0),x=!0);if(!x){e=!1;break}d.push(b),c.push(h),p.push(f),b<i&&(i=b),h<a&&(a=h),f<o&&(o=f),b>s&&(s=b),h>l&&(l=h),f>u&&(u=f)}if(e){let e=d[0],m=c[0],b=p[0];k?(e=i+g[0]*(s-i),m=a+g[1]*(l-a),b=t?o+(g.length>=3?g[2]:.5)*(u-o):0):T?(e=(i+s)/2,m=(a+l)/2,b=(o+u)/2):C?(e=d[R-1],m=c[R-1],b=p[R-1]):(0,n.isNum)(g)&&(e=d[g],m=c[g],b=p[g]);for(let i=0;i<R;i++){let a=e-d[i],o=m-c[i],s=b-p[i],l=(0,n.sqrt)(a*a+o*o+(t?s*s:0));"x"===v&&(l=-a),"y"===v&&(l=-o),"z"===v&&(l=-s),r.push(l)}let h=1/0;for(let e=0;e<R;e++){let t=(0,n.abs)(r[e]);t>0&&t<h&&(h=t)}if(h>0&&h<1/0)for(let e=0;e<R;e++)r[e]=r[e]/h}else for(let e=0;e<R;e++)r.push((0,n.abs)(O-e))}else for(let e=0;e<R;e++)if(f){let t,i,a,o=f.length,s=f[0]*f[1];k?(t=g[0]*(f[0]-1),i=g[1]*(f[1]-1),a=3===o?(g.length>
1=3?g[2]:.5)*(f[2]-1):0):T?(t=(f[0]-1)/2,i=(f[1]-1)/2,a=3===o?(f[2]-1)/2:0):(t=O%f[0],i=(0,n.floor)(O/f[0])%f[1],a=3===o?(0,n.floor)(O/s):0);let l=e%f[0],u=(0,n.floor)(e/f[0])%f[1],d=3===o?(0,n.floor)(e/s):0,c=t-l,p=i-u,m=a-d,b=(0,n.sqrt)(c*c+p*p+(3===o?m*m:0));"x"===v&&(b=-c),"y"===v&&(b=-p),"z"===v&&(b=-m),r.push(b)}else r.push((0,n.abs)(O-e));i=r[0];for(let e=1;e<R;e++)r[e]>i&&(i=r[e]);if(h||p)for(let e=0;e<R;e++){let t=r[e];h&&(t=h(t/i)*i),p&&(t=v?-t:(0,n.abs)(i-t)),r[e]=t}if(L){c=Array(R);for(let e=0;e<R;e++)c[e]=z(-1,1,4)}_&&(r=((e,t=u)=>{let r=e.length,i,a;for(;r;)a=t(0,--r),i=e[r],e[r]=e[a],e[a]=i;return e})(r,z))}let B=S?(D-A)/i:A;(0,n.isUnd)(t)&&(t=y?((e,t)=>{let r=e.iterationDuration;if(r===a.minValue&&(r=0),(0,n.isUnd)(t))return r;if((0,n.isNum)(+t))return+t;let i=e?e.labels:null,o=!(0,n.isNil)(i),l=((e,t)=>{if((0,n.stringStartsWith)(t,"<")){let r="<"===t[1],i=e._tail,a=i?i._offset+i._delay:0;return r?a:a+i.duration}})(e,t),u=!(0,n.isUnd)(l),d=a.relativeValuesExecRgx.exec(t);if(!d)return u?l:o?(0,n.isUnd)(i[t])?r:i[t]:r;{let e=d[0],a=t.split(e),n=o&&a[0]?i[a[0]]:r,c=u?l:o?n:r,g=+a[1];return(0,s.getRelativeValue)(c,g,e[0])}})(y,(0,n.isUnd)(e.start)?y.iterationDuration:I):I);let V=t+(B*(0,n.round)(r[q],2)||0);if(L){let e=i?r[q]/i:0;V+=c[q]*(W+(U-W)*e)}return e.modifier&&(V=e.modifier(V)),P&&(V=`${V}${P[2]}`),V}})({start:100}),duration:700,ease:"outExpo"})},[]),(0,t.jsx)("div",{ref:c,children:e})}],75607)},29541,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(5050),a=e.i(41775),n=e.i(64936),o=e.i(12973),s=e.i(46236);let l=10*a.K;class u{constructor(e={}){const t=!(0,o.isUnd)(e.bounce)||!(0,o.isUnd)(e.duration);this.timeStep=.02,this.restThreshold=5e-4,this.restDuration=200,this.maxDuration=6e4,this.maxRestSteps=this.restDuration/this.timeStep/a.K,this.maxIterations=this.maxDuration/this.timeStep/a.K,this.bn=(0,o.clamp)((0,s.setValue)(e.bounce,.5),-1,1),this.pd=(0,o.clamp)((0,s.setValue)(e.duration,628),10*n.globals.timeScale,l*n.globals.timeScale),this.m=(0,o.clamp)((0,s.setValue)(e.mass,1),1,l),this.s=(0,o.clamp)((0,s.setValue)(e.stiffness,100),a.minValue,l),this.d=(0,o.clamp)((0,s.setValue)(e.damping,10),a.minValue,l),this.v=(0,o.clamp)((0,s.setValue)(e.velocity,0),-l,l),this.w0=0,this.zeta=0,this.wd=0,this.b=0,this.completed=!1,this.solverDuration=0,this.settlingDuration=0,this.parent=null,this.onComplete=e.onComplete||a.noop,t&&this.calculateSDFromBD(),this.compute(),this.ease=e=>{let t=e*this.settlingDuration,r=this.completed,i=this.pd;return t>=i&&!r&&(this.completed=!0,this.onComplete(this.parent)),t<i&&r&&(this.completed=!1),0===e||1===e?e:this.solve(e*this.solverDuration)}}solve(e){let{zeta:t,w0:r,wd:i,b:a}=this,n=e;return 1-(n=t<1?(0,o.exp)(-n*t*r)*(+(0,o.cos)(i*n)+a*(0,o.sin)(i*n)):1===t?(1+a*n)*(0,o.exp)(-n*r):((1+a)*(0,o.exp)((-t*r+i)*n)+(1-a)*(0,o.exp)((-t*r-i)*n))/2)}calculateSDFromBD(){let e=1===n.globals.timeScale?this.pd/a.K:this.pd;this.m=1,this.v=0,this.s=(0,o.pow)(2*o.PI/e,2),this.bn>=0?this.d=(1-this.bn)*4*o.PI/e:this.d=4*o.PI/(e*(1+this.bn)),this.s=(0,o.round)((0,o.clamp)(this.s,a.minValue,l),3),this.d=(0,o.round)((0,o.clamp)(this.d,a.minValue,300),3)}calculateBDFromSD(){let e=2*o.PI/(0,o.sqrt)(this.s);this.pd=e*(1===n.globals.timeScale?a.K:1),this.d/(2*(0,o.sqrt)(this.s))<=1?this.bn=1-this.d*e/(4*o.PI):this.bn=4*o.PI/(this.d*e)-1,this.bn=(0,o.round)((0,o.clamp)(this.bn,-1,1),3),this.pd=(0,o.round)((0,o.clamp)(this.pd,10*n.globals.timeScale,l*n.globals.timeScale),3)}compute(){let{maxRestSteps:e,maxIterations:t,restThreshold:r,timeStep:i,m:s,d:l,s:u,v:d}=this,c=this.w0=(0,o.clamp)((0,o.sqrt)(u/s),a.minValue,a.K),g=this.zeta=l/(2*(0,o.sqrt)(u*s));g<1?(this.wd=c*(0,o.sqrt)(1-g*g),this.b=(g*c+-d)/this.wd):1===g?(this.wd=0,this.b=-d+c):(this.wd=c*(0,o.sqrt)(g*g-1),this.b=(g*c+-d)/this.wd);let p=0,m=0,b=0;for(;m<=e&&b<=t;)(0,o.abs)(1-this.solve(p))<r?m++:m=0,this.solverDuration=p,p+=i,b++;this.settlingDuration=(0,o.round)(this.solverDuration*a.K,0)*n.globals.timeScale}get bounce(){return this.bn}set bounce(e){this.bn=(0,o.clamp)((0,s.setValue)(e,1),-1,1),this.calculateSDFromBD(),this.compute()}get duration(){return this.pd}set duration(e){this.pd=(0,o.clamp)((0,s.setValue)(e,1),10*n.globals.timeScale,l*n.globals.timeScale),this.calculateSDFromBD(),this.compute()}get stiffness(){return this.s}set stiffness(e){this.s=(0,o.clamp)((0,s.setValue)(e,100),a.minValue,l),this.calculateBDFromSD(),this.compute()}get damping(){return this.d}set damping(e){this.d=(0,o.clamp)((0,s.setValue)(e,10),a.minValue,l),this.calculateBDFromSD(),this.compute()}get mass(){return this.m}set mass(e){this.m=(0,o.clamp)((0,s.setValue)(e,1),1,l),this.compute()}get velocity(){return this.v}set velocity(e){this.v=(0,o.clamp)((0,s.setValue)(e,0),-l,l),this.compute()}}let d=e=>new u(e);e.s(["default",0,function({className:e}){let a=(0,r.useRef)(null),n=(0,r.useRef)(null),o=(0,r.useRef)(null),s=(0,r.useRef)(null),l=(0,r.useRef)(null),u=(0,r.useRef)(null);return(0,r.useLayoutEffect)(()=>
1{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let e=a.current,t=n.current,r=o.current,c=s.current,g=l.current,p=u.current;if(!e||!t||!r||!c||!g||!p)return;let m=0,b=0;return m=requestAnimationFrame(()=>{b=requestAnimationFrame(()=>(function(){if(!e||!t||!r||!c||!g||!p)return;let a=e.getBoundingClientRect().width,n=c.getBoundingClientRect().width;a<4||n<4||(e.style.width="0px",t.style.opacity="0",t.style.transform="translateY(-160%)",t.style.backgroundColor="#f97316",t.style.color="#0a0a0a",c.style.width="0px",g.style.opacity="0",g.style.transform="translateX(-640%)",g.style.backgroundColor="#a855f7",g.style.color="#0a0a0a",(0,i.animate)(e,{width:[0,a],duration:600,delay:1300,ease:"outBack"}),(0,i.animate)(t,{translateY:["-160%","0%"],opacity:[0,1],duration:600,delay:1300,ease:"outBack",onComplete:()=>{(0,i.animate)(r,{translateY:[0,10,-6,0],duration:380,ease:d({stiffness:280,damping:10})})}}),(0,i.animate)(c,{width:[0,n],duration:220,delay:3200,ease:"inQuart"}),(0,i.animate)(g,{translateX:["-640%","0%"],opacity:[0,1],duration:220,delay:3200,ease:"inQuart",onComplete:()=>{(0,i.animate)(p,{translateX:[0,16,0],duration:420,ease:d({stiffness:260,damping:9})})}}))})())}),()=>{cancelAnimationFrame(m),cancelAnimationFrame(b)}},[]),(0,t.jsxs)("span",{className:e,children:[(0,t.jsxs)("span",{style:{whiteSpace:"nowrap"},children:[(0,t.jsxs)("span",{ref:a,style:{display:"inline-block",position:"relative"},children:[(0,t.jsx)("span",{style:{visibility:"hidden",padding:"0 3px"},"aria-hidden":!0,children:"Soft"}),(0,t.jsx)("span",{ref:n,style:{position:"absolute",left:0,top:0,borderRadius:6,padding:"0 3px",whiteSpace:"nowrap"},children:"Soft"})]}),(0,t.jsx)("span",{ref:o,style:{display:"inline-block"},children:"ware"})]})," ","that ships. AI sites,"," ",(0,t.jsxs)("span",{style:{whiteSpace:"nowrap"},children:[(0,t.jsxs)("span",{ref:s,style:{display:"inline-block",position:"relative"},children:[(0,t.jsx)("span",{style:{visibility:"hidden",padding:"0 3px"},"aria-hidden":!0,children:"over"}),(0,t.jsx)("span",{ref:l,style:{position:"absolute",left:0,top:0,borderRadius:6,padding:"0 3px",whiteSpace:"nowrap"},children:"over"})]}),(0,t.jsx)("span",{ref:u,style:{display:"inline-block"},children:"hauled."})]})]})}],29541)},33778,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(20133);e.s(["default",0,function({badges:e}){let a=(0,r.useRef)(null),n=(0,r.useRef)([]),o=(0,r.useRef)([]),s=(0,r.useRef)([]),l=(0,r.useRef)([]),[u,d]=(0,r.useState)(!1),c=[...e,...e,...e];(0,r.useEffect)(()=>{let e=a.current;if(!e)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return void d(!0);let t=-260;o.current=c.map((e,r)=>{let i=n.current[r]?.offsetWidth??180;s.current[r]=i,l.current[r]=-(20+15*Math.random());let a=t;return t+=i+34,a}),c.forEach((e,t)=>{let r=n.current[t];r&&(r.style.transform=`translate(${o.current[t]}px, -50%) rotate(${l.current[t]}deg)`)});let r=0,i=performance.now(),u=t=>{let a=Math.min((t-i)/1e3,.05);i=t;let d=e.getBoundingClientRect().width,g=d/2,p=Math.max(.125*d,1);for(let e=0;e<c.length;e++){let t=s.current[e],r=(o.current[e]+t/2-g)/p,i=.12+.88*(1-Math.exp(-3*r*r));if(o.current[e]-=150*i*a,o.current[e]+t<-80){let t=(e+1)%c.length;for(let r=0;r<c.length;r++)r!==e&&o.current[r]>o.current[t]&&(t=r);o.current[e]=o.current[t]+s.current[t]+34}let u=n.current[e];u&&(u.style.transform=`translate(${o.current[e]}px, -50%) rotate(${l.current[e]}deg)`)}r=requestAnimationFrame(u)};return r=requestAnimationFrame(u),()=>cancelAnimationFrame(r)},[]);let g=e=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${e.dot}`}),(0,t.jsxs)("span",{className:"font-mono text-[11px] text-zinc-300 whitespace-nowrap",children:[(0,t.jsx)("span",{className:"text-zinc-500",children:e.emoji})," ",(0,t.jsx)("span",{className:"text-white font-medium",children:e.label})," ",(0,t.jsx)("span",{className:e.tagColor,children:e.tag})]})]}),p="hero-badge-tilt flex items-center gap-2 bg-zinc-900 hover:bg-zinc-800 border border-zinc-800 hover:border-zinc-700 px-3.5 py-2 rounded-full transition-colors";return u?(0,t.jsx)("div",{className:"hero-badge-marquee-outer",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-3 justify-center py-8",children:e.map((e,r)=>e.external?(0,t.jsx)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:p.replace("hero-badge-tilt ",""),children:g(e)},r):(0,t.jsx)(i.Link,{href:e.href,className:p.replace("hero-badge-tilt ",""),children:g(e)},r))})}):(0,t.jsx)("div",{ref:a,className:"hero-badge-marquee-outer",children:(0,t.jsx)("div",{className:"relative h-[52px]",children:c.map((e,r)=>{let a=g(e),o={position:"absolute",top:"50%",left:0,willChange:"transform"},s=e=>{n.current[r]=e};return e.external?(0,t.jsx)("a",{ref:s,href:e.href,target:"_blank",rel:"noopener noreferrer",style:o,className:p,children:a},r):(0,t.jsx)(i.Link,{ref:s,href:e.href,style:o,className:p,children:a},r)})})})}])},61011,e=>{"use strict";var t=e.i(43476),r=e.i(71645);e.s(["default",0,function({children:e,strength:i=.35}){let a=(0,r.useRef)(null),n=(0,r.useRef)(null);return(0,t.jsx)("div",{ref:a,onMouseMove:e=>{if(window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let t=a.current;if(!t)return;
1let r=t.getBoundingClientRect(),o=e.clientX-(r.left+r.width/2),s=e.clientY-(r.top+r.height/2);n.current&&cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{let e=Math.max(-14,Math.min(14,o*i)),t=Math.max(-14,Math.min(14,s*i));a.current&&(a.current.style.transition="transform 0.15s ease-out",a.current.style.transform=`translate(${e}px, ${t}px)`)})},onMouseLeave:()=>{n.current&&cancelAnimationFrame(n.current);let e=a.current;e&&(e.style.transition="transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)",e.style.transform="translate(0px, 0px)")},className:"inline-block will-change-transform",children:e})}])},49445,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let i=["text-white","text-[#f97316]","text-[#d946ef]","text-white"];function a(e,t=.3){return Math.max(30,Math.round(e*(1+(2*Math.random()-1)*t)))}e.s(["default",0,function({sets:e}){let n=(0,r.useRef)(null),o=(0,r.useRef)(null),s=(0,r.useRef)(!1),l=(0,r.useRef)(0),u=(0,r.useRef)(0),d=(0,r.useRef)(0),c=(0,r.useRef)("typing"),g=(0,r.useRef)(e[0].map(()=>"")),p=(0,r.useRef)("none"),m=(0,r.useRef)(0),b=(0,r.useRef)(1),h=(0,r.useRef)(!1),[f,x]=(0,r.useState)(g.current),[v,w]=(0,r.useState)(0);return(0,r.useEffect)(()=>{if(s.current=window.matchMedia("(prefers-reduced-motion: reduce)").matches,s.current)return void x(e[0]);let t=(e,t)=>{let r=[...g.current];r[e]=t,g.current=r,x(r),w(e)},r=()=>{let i=e[l.current],n=c.current;if("typing"===n){var s;let e=u.current,n=d.current,l=i[e];if("inserting"===p.current){let i,u=(s=l[n]??"x",0===(i=Array.from(new Set(l.split(""))).filter(e=>/\S/.test(e)&&e.toLowerCase()!==s.toLowerCase())).length?"x":i[Math.floor(Math.random()*i.length)]);t(e,g.current[e]+u),m.current+=1,m.current>=b.current?(p.current="pausing",o.current=window.setTimeout(r,a(420,.4))):o.current=window.setTimeout(r,a(280));return}if("pausing"===p.current){p.current="removing",o.current=window.setTimeout(r,0);return}if("removing"===p.current){let i=g.current[e];t(e,i.slice(0,-1)),m.current-=1,m.current>0?o.current=window.setTimeout(r,a(90)):(p.current="none",o.current=window.setTimeout(r,a(280)));return}if(n<l.length){if(!h.current&&!(n<2)&&!(n>l.length-3)&&/\S/.test(l[n])&&.025>Math.random()){h.current=!0,p.current="inserting",m.current=0,b.current=.25>Math.random()?2:1,o.current=window.setTimeout(r,a(280));return}d.current=n+1,t(e,l.slice(0,n+1)),o.current=window.setTimeout(r,a(280))}else e<i.length-1?(u.current=e+1,d.current=0,h.current=!1,o.current=window.setTimeout(r,150)):(c.current="pausedFull",o.current=window.setTimeout(r,a(3e3,.15)));return}if("pausedFull"===n){c.current="deleting",o.current=window.setTimeout(r,0);return}let f=u.current,v=g.current[f].slice(0,-1);if(t(f,v),v.length>0)o.current=window.setTimeout(r,a(93));else if(f>0)u.current=f-1,o.current=window.setTimeout(r,a(93));else{let t=(l.current+1)%e.length;l.current=t,u.current=0,d.current=0,c.current="typing",p.current="none",h.current=!1;let i=e[t].map(()=>"");g.current=i,x(i),o.current=window.setTimeout(r,150)}},i=n.current;if(!i)return;let f=new IntersectionObserver(([e])=>{e.isIntersecting&&(o.current=window.setTimeout(r,400),f.disconnect())},{threshold:.2});return f.observe(i),()=>{f.disconnect(),o.current&&window.clearTimeout(o.current)}},[]),(0,t.jsx)("div",{ref:n,className:"flex flex-col gap-3 md:gap-4",children:f.map((e,r)=>(0,t.jsx)("div",{className:"min-h-[1.2em]",children:(0,t.jsxs)("span",{className:`font-display font-medium leading-[1.1] tracking-tight text-4xl sm:text-6xl lg:text-7xl ${i[r%i.length]}`,children:[e,!s.current&&v===r&&(0,t.jsx)("span",{"aria-hidden":!0,className:"inline-block w-[3px] sm:w-[5px] h-[0.85em] bg-current ml-1 align-[-0.12em] animate-pulse"})]})},r))})}])},71719,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(57688),a=e.i(68877);e.s(["default",0,function({cards:e}){let[n,o]=(0,r.useState)(0),[s,l]=(0,r.useState)("showing"),[u]=(0,r.useState)(()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches);(0,r.useEffect)(()=>{if(!u)return;let t=setInterval(()=>o(t=>(t+1)%e.length),4500);return()=>clearInterval(t)},[u,e.length]),(0,r.useEffect)(()=>
1{if("gap"!==s)return;let t=setTimeout(()=>{o(t=>(t+1)%e.length),l("showing")},550);return()=>clearTimeout(t)},[s,e.length]);let d=e[n];return(0,t.jsxs)("div",{className:"overflow-hidden py-2 px-4 sm:px-8 md:px-12 -mx-4 sm:-mx-8 md:-mx-12",children:[(0,t.jsxs)("a",{href:d.href,...d.external?{target:"_blank",rel:"noopener noreferrer"}:{},onAnimationEnd:u?void 0:()=>l("gap"),className:`group flex flex-col md:flex-row items-start md:items-center gap-6 md:gap-8 rounded-2xl border ${d.borderClass} ${d.bgClass} p-6 sm:p-8 transition-colors ${u?"duration-500 ease-in-out":"gap"===s?"invisible":"animate-card-launch"}`,children:[(0,t.jsx)("div",{className:"w-12 h-12 rounded-xl bg-white/5 border border-white/10 flex items-center justify-center overflow-hidden shrink-0",children:(0,t.jsx)(i.default,{src:d.iconSrc,alt:d.iconAlt,width:32,height:32})}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("span",{className:`font-mono text-[10px] tracking-widest uppercase ${d.tagClass}`,children:d.tag}),(0,t.jsx)("h2",{className:"mt-1 text-lg sm:text-xl font-display font-semibold text-white leading-snug",children:d.title}),(0,t.jsx)("p",{className:"mt-2 text-zinc-500 text-sm leading-relaxed max-w-2xl",children:d.desc})]}),(0,t.jsxs)("span",{className:`inline-flex items-center gap-2 font-mono text-xs font-bold transition-colors shrink-0 ${d.ctaClass}`,children:[d.cta,(0,t.jsx)(a.ArrowRight,{className:"w-4 h-4"})]})]},n),(0,t.jsx)("div",{className:"flex items-center justify-center gap-2 mt-6",children:e.map((e,r)=>(0,t.jsx)("span",{className:`h-1.5 rounded-full transition-all duration-500 ${r===n?`w-6 ${e.dotClass}`:"w-1.5 bg-zinc-700"}`},r))})]})}])},9720,e=>{"use strict";var t=e.i(43476),r=e.i(71645),i=e.i(20133),a=e.i(68109),n=e.i(68877),o=e.i(7471);let s={en:{readMore:"Read article â",posts:[{slug:"aftercast",title:"Aftercast: I Started a Solo Game Studio and Shipped a Free Sniper Game",excerpt:"No ads mid-game, no dark patterns, honest version numbers, a public changelog. Meet Aftercast â and play Snaiper, a free browser sniper game with real wind, drop and flight time.",date:"September 27, 2026",readTime:"6 min read",tag:"Studio",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"show-multiple-time-zones-windows",title:"How to Show Multiple Time Zones on Windows 11 (and Get Past the 3-Clock Limit)",excerpt:"Windows 11 shows only three clocks. Every way to see more time zones on your PC â built-in, widgets, Rainmeter, apps â plus the daylight-saving trap and how to set an alarm in another time zone.",date:"September 21, 2026",readTime:"9 min read",tag:"Guide",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"best-world-clock-apps-windows",title:"Best World Clock Apps for Windows in 2026: Compared Honestly",excerpt:"Windows built-in vs Sharp World Clock, Anuko, Themia, Rainmeter and Time Precision â features, alarms, price and who each is actually for, from the maker of one of them.",date:"September 21, 2026",readTime:"8 min read",tag:"Comparison",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"startup-launch-directories-we-actually-use",title:"We Built Two Launch Directories. Here's Every Other One We Actually Use.",excerpt:"The real story behind runs.space and runs-this.today â plus an honest list of every other startup launch directory currently in our own rotation.",date:"September 15, 2026",readTime:"8 min read",tag:"Guide",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake: Which One Should You Actually Use?",excerpt:"An honest, feature-by-feature comparison â free and open-source vs a $39 one-time toolkit, dense settings vs a modern interface, and exactly where each one wins.",date:"September 1, 2026",readTime:"11 min read",tag:"Comparison",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"The Timezone Widget for Windows Built to Never Make You Miss a Call Again",excerpt:"Time Precision is a free Windows desktop widget â 233 cities, hover for live seconds, 9 finishes, drag-and-drop reorder. No account, no subscription.",date:"August 5, 2026",readTime:"8 min read",tag:"Product",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"Software License Keys, Explained Properly",excerpt:'"License key," "product key," "serial key" â four terms describing systems that actually work quite differently. What they are, how they work, the types, and how to add one to your app.',date:"July 30, 2026",readTime:"13 min read",tag:"Guide",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: The Difference Nobody Explains Properly",excerpt:"UI and UX are not the same thing, and mixing them up costs real money. 8 clear comparisons, real examples, and an interactive quiz to test yourself.",date:"July 28, 2026",readTime:"9 min read",tag:"Design Lesson",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"I Submitted BackDrop_ to NickLaunches â Here's What Actually Happened",excerpt:"An honest, first-person account of listing BackDrop_ on NickLaunches â what backlinks and DR actually mean, the real analytics and growth tools behind it, and whether it was worth it.",date:"July 23, 2026",readTime:"10 min read",tag:"Opinion",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"Looking for a Live Video Wallpaper App? Here's What Actually Works.",excerpt:"Most 'video wallpaper' apps get covered the second you open a window. BackDrop_ v1.1.2 solves the real problem â a video overlay that stays visible while you actually work.",date:"July 18, 2026",readTime:"7 min read",tag:"Product",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"Multilingual Content Is Real SEO. Here's Exactly How We Do It.",excerpt:"Why multilingual content is a genuine organic-reach strategy (not hype), and exactly how we write and localize a real article about your product into 9 languages.",date:"July 18, 2026",readTime:"7 min read",tag:"SEO & Content",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"How Much Does a Website Really Cost in 2026? Real Prices, No Guessing",excerpt:"Real website pricing for 2026 â DIY builders, freelancers, agencies, and fixed-price custom builds, broken down by business type, with the hidden costs nobody tells you about.",date:"July 14, 2026",readTime:"8 min read",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"Your Food Is Michelin-Level. Is Your Website?",excerpt:"Why a fine dining restaurant's website is usually the weakest part of the experience, what it actually costs guests, and what a website built to match the food looks like.",date:"July 12, 2026",readTime:"6 min read",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"How to Verify a Software License Offline (No Internet Required)",excerpt:"How to let your desktop app check a license with zero network calls, using Ed25519 signed leases instead of a plain local cache anyone can edit. Real code for Python and Node.js/Electron.",date:"July 9, 2026",readTime:"7 min read",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"How to Add License Keys to Your Desktop App Without Building Your Own Backend",excerpt:"A practical guide to adding machine-locked license keys, activation, and trials to your Electron, Python, or .NET desktop app â using a small hosted API instead of building your own licensing backend.",date:"July 9, 2026",readTime:"6 min read",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Compiling standalone Python executables with Nuitka to eliminate machine overhead",excerpt:"The definitive guide to launching ultra-fast .exe files on Windows, without needing slow runtime packages like PyInstaller.",date:"June 10, 2026",readTime:"12 min read",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"The Internet Is Drowning in Copies â A Developer's Manifesto on Authenticity",excerpt:"The internet is drowning in AI-generated clones. A personal manifesto on why authenticity and effort still matter in 2026 â and what we do about it at Sublimearts.",date:"June 9, 2026",readTime:"5 min read",tag:"Values",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"How to Watch Videos While Working on Windows â The Method That Actually Works",excerpt:"You have videos on your drive you want to watch. You have work to do. Every existing solution forces you to choose one or the other. This guide compares every real option for local files.",date:"June 6, 2026",readTime:"5 min read",tag:"Guide",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"Fair Pricing for Everyone: Why We Support Purchasing Power Parity",excerpt:"We just made our software cheaper for 35+ countries â automatically, with no coupon needed. Here's why we believe fair pricing matters more than maximum profit.",date:"June 6, 2026",readTime:"4 min read",tag:"Pricing & Values",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"I Had 300 Hours of Video I Never Watched. So I Built BackDrop_.",excerpt:"A ghost video overlay for Windows that lets you watch any local video while working. No PiP limitations, no screen takeover. Your content, finally watched.",date:"June 4, 2026",readTime:"4 min read",tag:"Product",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"How to compress large video files on Windows without losing quality",excerpt:"Any large MP4, MKV or AVI file â shrink it to 10% locally using your GPU. No cloud upload, no subscription, no quality loss.",date:"June 3, 2026",readTime:"5 min read",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit removed my post about compressing files. So I wrote a blog post about it.",excerpt:"After 20+ attempts to share useful content on Reddit, every post got removed. Here's what I think about it, and what actually works instead.",date:"June 3, 2026",readTime:"5 min read",tag:"Opinion",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"How to compress OBS recordings on Windows without uploading anywhere",excerpt:"OBS files hit 10â30 GB. Here's how to shrink them to 10% the size locally using your GPU â no cloud, no subscription, no account.",date:"June 3, 2026",readTime:"5 min read",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"Building in public shouldn't mean building alone.",excerpt:"Why we're building a community space for indie devs, designers and the people who use our tools. A place to ask, share, and not feel alone in the process.",date:"June 3, 2026",readTime:"3 min read",tag:"Community",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"Typography Fundamentals: 8 Concepts Every Designer Must Know",excerpt:"Kerning, tracking, leading, type scale, contrast â the invisible rules that separate good design from great. Includes 8 free interactive demos.",date:"June 1, 2026",readTime:"6 min read",tag:"Design Lesson",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"How to Compress Videos with GPU on Windows â 5â10x Faster than CPU",excerpt:"Use your NVIDIA, AMD or Intel GPU to compress H.264/H.265 video 5-10x faster. Free guide + the Windows tool built for this.",date:"May 30, 2026",readTime:"5 min read",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"How to Delete All Your Tweets at Once â Free, No API, No App",excerpt:"X has no native delete-all button. Paid tools charge monthly. This free browser script does it in minutes â no install, no account, no catch.",date:"May 30, 2026",readTime:"4 min read",tag:"Free Tool",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"Why I build native multilingual Next.js routes (IT/EN/ES) by default on every commission",excerpt:"Mapping international SEO routes in Next.js/Astro prevents rendering lag and eliminates the flaws found when using slow automatic translators.",date:"May 28, 2026",readTime:"8 min read",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"Expressive typography as a primary branding tool for independent artisan studios",excerpt:"Against AI aesthetic normalization, the independent studio imposes itself by alternating asymmetric rhythms and striking Helvetica-style typefaces.",date:"April 15, 2026",readTime:"6 min read",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},it:{readMore:"Leggi l'articolo â",posts:[{slug:"aftercast",title:"Aftercast: Ho Aperto uno Studio di Giochi da Solo e Pubblicato uno Sniper Gratis",excerpt:"Niente pubblicità durante il gioco, niente dark pattern, numeri di versione onesti, changelog pubblico. Ecco Aftercast â e Snaiper, uno sniper gratuito nel browser con vento, caduta e tempo di volo reali.",date:"27 Settembre 2026",readTime:"6 min di lettura",tag:"Studio",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"Abbiamo Costruito Due Directory di Lancio. Ecco Ogni Altra Che Usiamo Davvero.",excerpt:"La storia reale dietro runs.space e runs-this.today â più la lista onesta di ogni altra directory di lancio startup attualmente nella nostra rotazione.",date:"15 Settembre 2026",readTime:"8 min di lettura",tag:"Guida",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake: Quale Usare Davvero?",excerpt:"Un confronto onesto, funzione per funzione â gratis e open source contro un toolkit da $39 una tantum, impostazioni dense contro un'interfaccia moderna, e dove vince davvero ciascuno.",date:"1 Settembre 2026",readTime:"11 min di lettura",tag:"Confronto",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"Il Widget Fuso Orario per Windows Pensato per Non Farti Mai Più Perdere una Call",excerpt:"Time Precision è un widget gratuito per Windows â 233 città , hover per i secondi in tempo reale, 9 finiture, riordino drag-and-drop. Nessun account, nessun abbonamento.",date:"5 Agosto 2026",readTime:"8 min di lettura",tag:"Prodotto",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"Le Chiavi di Licenza Software, Spiegate Bene",excerpt:'"Chiave di licenza", "product key", "serial key" â quattro termini che descrivono sistemi piuttosto diversi. Cosa sono, come funzionano, i tipi, e come aggiungerne una alla tua app.',date:"30 Luglio 2026",readTime:"13 min di lettura",tag:"Guida",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: La Differenza che Nessuno Spiega Bene",excerpt:"UI e UX non sono la stessa cosa, e confonderle costa soldi veri. 8 confronti chiari, esempi reali e un quiz interattivo per metterti alla prova.",date:"28 Luglio 2026",readTime:"9 min di lettura",tag:"Lezione di Design",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"Ho Sottomesso BackDrop_ a NickLaunches â Ecco Cosa à Successo Davvero",excerpt:"Un resoconto onesto e in prima persona sulla pubblicazione di BackDrop_ su NickLaunches â cosa significano davvero backlink e DR, le vere analytics e gli strumenti di crescita dietro le quinte, e se ne è valsa la pena.",date:"23 Luglio 2026",readTime:"10 min di lettura",tag:"Opinione",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"Cerchi un'App di Sfondo Video Live? Ecco Cosa Funziona Davvero.",excerpt:"La maggior parte delle app di 'sfondo video' viene coperta appena apri una finestra. BackDrop_ v1.1.2 risolve il vero problema â un overlay video che resta visibile mentre lavori davvero.",date:"18 Luglio 2026",readTime:"7 min di lettura",tag:"Prodotto",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"I Contenuti Multilingua Sono SEO Vera. Ecco Esattamente Come Lo Facciamo.",excerpt:"Perché i contenuti multilingua sono una vera strategia di reach organico (non solo hype), e come scriviamo e localizziamo un articolo reale sul tuo prodotto in 9 lingue.",date:"18 Luglio 2026",readTime:"7 min di lettura",tag:"SEO & Contenuti",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"Quanto Costa Davvero un Sito Web nel 2026? Prezzi Reali, Niente Indovinelli",excerpt:"Prezzi reali per un sito web nel 2026 â builder fai-da-te, freelancer, agenzie e siti custom a prezzo fisso, suddivisi per tipo di attività , con i costi nascosti che nessuno ti dice.",date:"14 Luglio 2026",readTime:"8 min di lettura",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"La Tua Cucina à da Stella Michelin. Il Tuo Sito Web?",excerpt:"Perché il sito di un ristorante fine dining è spesso l'anello più debole dell'esperienza, cosa costa davvero agli ospiti, e come dovrebbe essere un sito all'altezza della cucina.",date:"12 Luglio 2026",readTime:"6 min di lettura",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"Come Verificare una Licenza Software Offline (Senza Internet)",excerpt:"Come far controllare a un'app desktop una licenza con zero chiamate di rete, usando lease firmati Ed25519 invece di una semplice cache locale modificabile. Codice reale per Python e Node.js/Electron.",date:"9 Luglio 2026",readTime:"7 min di lettura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"Come Aggiungere Chiavi di Licenza alla Tua App Desktop Senza Costruire un Backend",excerpt:"Guida pratica per aggiungere chiavi di licenza vincolate al dispositivo, attivazione e trial alla tua app Electron, Python o .NET â usando una piccola API in cloud invece di un tuo backend di licensing.",date:"9 Luglio 2026",readTime:"6 min di lettura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Compilare esecutibili Python standalone con Nuitka per azzerare l'overhead di macchina",excerpt:"La guida definitiva per lanciare file .exe ultraveloci su Windows, eliminando la necessità di lenti pacchetti runtime con PyInstaller.",date:"10 Giugno 2026",readTime:"12 min di lettura",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"Internet sta annegando nelle copie â Un manifesto sulla autenticità ",excerpt:"Internet si sta annegando in cloni generati dall'AI. Un manifesto personale su perché autenticità e impegno contano ancora nel 2026 â e cosa facciamo al riguardo.",date:"9 Giugno 2026",readTime:"5 min di lettura",tag:"Valori",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Come guardare video mentre si lavora su Windows â Il metodo che funziona davvero",excerpt:"Hai video sul disco che vuoi guardare. Hai lavoro da fare. Ogni soluzione esistente ti costringe a scegliere uno dei due. Questa guida confronta ogni opzione reale per i file locali.",date:"6 Giugno 2026",readTime:"5 min di lettura",tag:"Guida",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"Prezzi equi per tutti: perché supportiamo il Purchasing Power Parity",excerpt:"Abbiamo reso il nostro software più economico per 35+ paesi â automaticamente, senza coupon. Ecco perché crediamo che prezzi equi contino più del profitto massimo.",date:"6 Giugno 2026",readTime:"4 min di lettura",tag:"Prezzi & Valori",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"Avevo 300 Ore di Video che Non Guardavo Mai. Così Ho Costruito BackDrop_.",excerpt:"Un ghost video overlay per Windows che ti permette di guardare qualsiasi video locale mentre lavori. Nessun limite PiP, nessuno screen takeover. Il tuo contenuto, finalmente visto.",date:"4 Giugno 2026",readTime:"4 min di lettura",tag:"Prodotto",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Come comprimere file video di grandi dimensioni su Windows senza perdere qualità ",excerpt:"Qualsiasi file MP4, MKV o AVI grande â riducilo al 10% in locale con la GPU. Niente cloud, nessun abbonamento, nessuna perdita di qualità .",date:"3 Giugno 2026",readTime:"5 min di lettura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit ha rimosso il mio post sulla compressione video. Quindi ho scritto un blog post.",excerpt:"Dopo 20+ tentativi di condividere contenuti utili su Reddit, ogni post è stato rimosso. Cosa ne penso e cosa funziona davvero invece.",date:"3 Giugno 2026",readTime:"5 min di lettura",tag:"Opinione",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"Come comprimere le registrazioni OBS su Windows senza caricarle da nessuna parte",excerpt:"I file OBS raggiungono 10â30 GB. Ecco come ridurli al 10% localmente con la GPU â niente cloud, nessun abbonamento.",date:"3 Giugno 2026",readTime:"5 min di lettura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"Costruire in pubblico non dovrebbe significare costruire da soli.",excerpt:"Perché stiamo costruendo uno spazio community per indie dev, designer e chi usa i nostri strumenti. Un posto per chiedere, condividere e non sentirsi soli nel processo.",date:"3 Giugno 2026",readTime:"3 min di lettura",tag:"Community",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"Fondamenti di Tipografia: 8 Concetti che Ogni Designer Deve Conoscere",excerpt:"Kerning, tracking, leading, scala tipografica, contrasto â le regole invisibili che separano un buon design da uno ottimo. Con 8 demo interattive gratuite.",date:"1 Giugno 2026",readTime:"6 min di lettura",tag:"Lezione di Design",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Come comprimere video con la GPU su Windows â 5â10 volte più veloce della CPU",excerpt:"Usa la tua GPU NVIDIA, AMD o Intel per comprimere video H.264/H.265 molto più velocemente. Guida gratuita + il tool Windows costruito per questo.",date:"30 Maggio 2026",readTime:"5 min di lettura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"Come eliminare tutti i tweet in una volta â Gratis, senza API",excerpt:"X non ha un pulsante elimina-tutto. I tool a pagamento costano â¬15/mese. Questo script gratuito lo fa in pochi minuti â nessuna installazione, nessun trucco.",date:"30 Maggio 2026",readTime:"4 min di lettura",tag:"Tool Gratuito",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"Perché disegno itinerari Next.js multilingua nativi (IT/EN/ES) di base su qualunque commissione",excerpt:"Tracciare percorsi SEO internazionali in Next.js/Astro previene lag di rendering ed elimina i difetti riscontrati usando traduttori automatici lenti.",date:"28 Maggio 2026",readTime:"8 min di lettura",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"La tipografia espressiva come strumento primario di branding per studi artigianali indipendenti",excerpt:"Contro la normalizzazione estetica delle IA, lo studio indipendente si impone alternando ritmi asimmetrici e graffianti caratteri elvetici.",date:"15 Aprile 2026",readTime:"6 min di lettura",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},es:{readMore:"Leer artÃculo â",posts:[{slug:"aftercast",title:"Aftercast: Abrà un Estudio de Juegos en Solitario y Lancé un Sniper Gratis",excerpt:"Sin anuncios durante la partida, sin dark patterns, números de versión honestos, changelog público. Conoce Aftercast â y juega Snaiper, un sniper gratuito en el navegador con viento, caÃda y tiempo de vuelo reales.",date:"27 de septiembre de 2026",readTime:"6 min de lectura",tag:"Estudio",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"Construimos Dos Directorios de Lanzamiento. Aquà Está Cada Otro Que Usamos de Verdad.",excerpt:"La historia real detrás de runs.space y runs-this.today â más la lista honesta de cada otro directorio de lanzamiento de startups actualmente en nuestra rotación.",date:"15 de septiembre de 2026",readTime:"8 min de lectura",tag:"GuÃa",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake: ¿Cuál DeberÃas Usar Realmente?",excerpt:"Una comparación honesta, función por función â gratis y open source frente a un toolkit de $39 de una vez, ajustes densos frente a una interfaz moderna, y dónde gana cada uno de verdad.",date:"1 de septiembre de 2026",readTime:"11 min de lectura",tag:"Comparativa",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"El Widget de Zona Horaria para Windows Hecho para Que Nunca Más Pierdas una Llamada",excerpt:"Time Precision es un widget gratuito para Windows â 233 ciudades, hover para segundos en vivo, 9 acabados, reordenar con drag-and-drop. Sin cuenta, sin suscripción.",date:"5 de agosto de 2026",readTime:"8 min de lectura",tag:"Producto",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"Claves de Licencia de Software, Explicadas de Verdad",excerpt:'"Clave de licencia", "product key", "serial key" â cuatro términos que describen sistemas bastante distintos. Qué son, cómo funcionan, los tipos, y cómo añadir una a tu app.',date:"30 de julio de 2026",readTime:"13 min de lectura",tag:"GuÃa",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: La Diferencia que Nadie Explica Bien",excerpt:"UI y UX no son lo mismo, y confundirlos cuesta dinero real. 8 comparaciones claras, ejemplos reales y un quiz interactivo para ponerte a prueba.",date:"28 de julio de 2026",readTime:"9 min de lectura",tag:"Lección de Diseño",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"Envié BackDrop_ a NickLaunches â Esto Es Lo Que Realmente Pasó",excerpt:"Un relato honesto y en primera persona sobre listar BackDrop_ en NickLaunches â qué significan realmente los backlinks y el DR, las analÃticas y herramientas de crecimiento reales detrás, y si valió la pena.",date:"23 Julio 2026",readTime:"10 min de lectura",tag:"Opinión",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"¿Buscas una App de Fondo de Pantalla de VÃdeo en Vivo? Esto Es Lo Que Realmente Funciona.",excerpt:"La mayorÃa de las apps de 'fondo de pantalla de vÃdeo' se tapan en cuanto abres una ventana. BackDrop_ v1.1.2 resuelve el problema real â un overlay de vÃdeo que sigue visible mientras trabajas de verdad.",date:"18 de julio de 2026",readTime:"7 min de lectura",tag:"Producto",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"El Contenido Multilingüe Es SEO Real. Asà Es Exactamente Cómo Lo Hacemos.",excerpt:"Por qué el contenido multilingüe es una estrategia real de alcance orgánico (no solo hype), y cómo escribimos y localizamos un artÃculo real sobre tu producto en 9 idiomas.",date:"18 de julio de 2026",readTime:"7 min de lectura",tag:"SEO y Contenido",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"¿Cuánto Cuesta Realmente una Página Web en 2026? Precios Reales, Sin Adivinar",excerpt:"Precios reales de páginas web para 2026 â creadores DIY, freelancers, agencias y desarrollos a medida con precio fijo, desglosados por tipo de negocio, con los costes ocultos que nadie te cuenta.",date:"14 de julio de 2026",readTime:"8 min de lectura",tag:"Diseño Web",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"Tu Comida Es de Nivel Michelin. ¿Y Tu Sitio Web?",excerpt:"Por qué el sitio web de un restaurante de alta cocina suele ser el eslabón más débil de la experiencia, lo que realmente cuesta a los huéspedes, y cómo deberÃa ser un sitio a la altura de la cocina.",date:"12 de julio de 2026",readTime:"6 min de lectura",tag:"Diseño Web",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"Cómo Verificar una Licencia de Software Offline (Sin Internet)",excerpt:"Cómo hacer que tu app de escritorio verifique una licencia con cero llamadas de red, usando leases firmados con Ed25519 en vez de una simple caché local editable. Código real para Python y Node.js/Electron.",date:"9 de Julio de 2026",readTime:"7 min de lectura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"Cómo Añadir Claves de Licencia a Tu App de Escritorio Sin Construir un Backend",excerpt:"GuÃa práctica para añadir claves de licencia vinculadas a la máquina, activación y pruebas a tu app Electron, Python o .NET â con una pequeña API alojada en vez de tu propio backend de licencias.",date:"9 de Julio de 2026",readTime:"6 min de lectura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Compilar ejecutables Python standalone con Nuitka para eliminar la sobrecarga de máquina",excerpt:"La guÃa definitiva para lanzar archivos .exe ultrarrápidos en Windows, eliminando la necesidad de lentos paquetes runtime como PyInstaller.",date:"10 Junio 2026",readTime:"12 min de lectura",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"Internet se está ahogando en copias â Un manifiesto sobre la autenticidad",excerpt:"Internet se está ahogando en clones generados por IA. Un manifiesto personal sobre por qué la autenticidad y el esfuerzo siguen importando en 2026 â y lo que hacemos al respecto.",date:"9 de Junio de 2026",readTime:"5 min de lectura",tag:"Valores",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Cómo ver videos mientras trabajas en Windows â El método que realmente funciona",excerpt:"Tienes videos en tu disco que quieres ver. Tienes trabajo que hacer. Cada solución existente te obliga a elegir uno u otro. Esta guÃa compara cada opción real para archivos locales.",date:"6 Junio 2026",readTime:"5 min de lectura",tag:"GuÃa",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"Precios justos para todos: por qué apoyamos la paridad de poder adquisitivo",excerpt:"Acabamos de hacer nuestro software más barato para 35+ paÃses â automáticamente, sin cupón. Por qué creemos que los precios justos importan más que el máximo beneficio.",date:"6 Junio 2026",readTime:"4 min de lectura",tag:"Precios & Valores",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"TenÃa 300 Horas de Video que Nunca VeÃa. Asà que Construà BackDrop_.",excerpt:"Un ghost video overlay para Windows que te permite ver cualquier video local mientras trabajas. Sin limitaciones PiP, sin ocupar la pantalla. Tu contenido, finalmente visto.",date:"4 Junio 2026",readTime:"4 min de lectura",tag:"Producto",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Cómo comprimir archivos de video grandes en Windows sin perder calidad",excerpt:"Cualquier archivo MP4, MKV o AVI grande â redúcelo al 10% localmente con GPU. Sin nube, sin suscripción, sin pérdida de calidad.",date:"3 Junio 2026",readTime:"5 min de lectura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit eliminó mi post sobre compresión de video. Asà que escribà un blog post sobre ello.",excerpt:"Después de 20+ intentos de compartir contenido útil en Reddit, cada post fue eliminado. Lo que pienso al respecto y qué funciona en cambio.",date:"3 Junio 2026",readTime:"5 min de lectura",tag:"Opinión",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"Cómo comprimir grabaciones de OBS en Windows sin subirlas a ningún lado",excerpt:"Los archivos OBS alcanzan 10â30 GB. Aquà cómo reducirlos al 10% localmente con tu GPU â sin nube, sin suscripción.",date:"3 Junio 2026",readTime:"5 min de lectura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"Construir en público no deberÃa significar construir solo.",excerpt:"Por qué estamos construyendo un espacio comunitario para devs indie, diseñadores y quienes usan nuestras herramientas. Un lugar para preguntar, compartir y no sentirse solo.",date:"1 Junio 2026",readTime:"3 min de lectura",tag:"Comunidad",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"Fundamentos de TipografÃa: 8 Conceptos que Todo Diseñador Debe Conocer",excerpt:"Kerning, tracking, interlineado, escala tipográfica, contraste â las reglas invisibles que separan el buen diseño del excelente. Con 8 demos interactivos gratuitos.",date:"1 Junio 2026",readTime:"6 min de lectura",tag:"Lección de Diseño",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Cómo comprimir videos con GPU en Windows â 5â10x más rápido que la CPU",excerpt:"Usa tu GPU NVIDIA, AMD o Intel para comprimir video H.264/H.265 mucho más rápido. GuÃa gratuita + la herramienta Windows para esto.",date:"30 Mayo 2026",readTime:"5 min de lectura",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"Cómo eliminar todos tus tweets de una vez â Gratis, sin API",excerpt:"X no tiene botón de eliminar todo. Las herramientas de pago cobran mensualmente. Este script gratuito lo hace en minutos â sin instalación, sin trampa.",date:"30 Mayo 2026",readTime:"4 min de lectura",tag:"Herramienta Gratuita",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"Por qué diseño rutas Next.js multilingüe nativas (IT/EN/ES) por defecto en cada comisión",excerpt:"Mapear rutas SEO internacionales en Next.js/Astro previene el lag de renderizado y elimina los defectos encontrados usando traductores automáticos lentos.",date:"28 Mayo 2026",readTime:"8 min de lectura",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"La tipografÃa expresiva como herramienta principal de branding para estudios artesanales independientes",excerpt:"Contra la normalización estética de la IA, el estudio independiente se impone alternando ritmos asimétricos y llamativas tipografÃas estilo Helvética.",date:"15 Abril 2026",readTime:"6 min de lectura",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},de:{readMore:"Artikel lesen â",posts:[{slug:"aftercast",title:"Aftercast: Ich Habe ein Solo-Spielestudio Gestartet und ein Kostenloses Sniper-Spiel Veröffentlicht",excerpt:"Keine Werbung während des Spiels, keine Dark Patterns, ehrliche Versionsnummern, öffentliches Changelog. Lernen Sie Aftercast kennen â und spielen Sie Snaiper, ein kostenloses Browser-Sniper-Spiel mit echtem Wind, Fall und Flugzeit.",date:"27. September 2026",readTime:"6 Min. Lesezeit",tag:"Studio",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"Wir Haben Zwei Launc
1h-Verzeichnisse Selbst Gebaut. Hier Ist Jedes Andere, Das Wir Wirklich Nutzen.",excerpt:"Die echte Geschichte hinter runs.space und runs-this.today â plus eine ehrliche Liste jedes anderen Startup-Launch-Verzeichnisses, das derzeit in unserer eigenen Rotation ist.",date:"15. September 2026",readTime:"8 Min. Lesezeit",tag:"Leitfaden",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake: Welches Solltest Du Wirklich Nutzen?",excerpt:"Ein ehrlicher Vergleich, Feature für Feature â kostenlos und Open Source gegen ein einmaliges $39-Toolkit, dichte Einstellungen gegen eine moderne Oberfläche, und wo jedes wirklich gewinnt.",date:"1. September 2026",readTime:"11 Min. Lesezeit",tag:"Vergleich",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"Das Zeitzonen-Widget für Windows, Gebaut Damit du Nie Wieder Einen Call Verpasst",excerpt:"Time Precision ist ein kostenloses Windows-Widget â 233 Städte, Hover für Live-Sekunden, 9 Finishes, Drag-and-Drop-Sortierung. Kein Konto, kein Abo.",date:"5. August 2026",readTime:"8 Min. Lesezeit",tag:"Produkt",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"software-license-key-guide",title:"Software-Lizenzschlüssel, Richtig Erklärt",excerpt:'"Lizenzschlüssel", "Produktschlüssel", "Seriennummer" â vier Begriffe für recht unterschiedliche Systeme. Was sie sind, wie sie funktionieren, die Typen, und wie man einen zur App hinzufügt.',date:"30. Juli 2026",readTime:"13 Min. Lesezeit",tag:"Guide",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: Der Unterschied, Den Niemand Richtig Erklärt",excerpt:"UI und UX sind nicht dasselbe, und sie zu verwechseln kostet echtes Geld. 8 klare Vergleiche, echte Beispiele und ein interaktives Quiz zum Selbsttest.",date:"28. Juli 2026",readTime:"9 Min. Lesezeit",tag:"Design-Lektion",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"Ich Habe BackDrop_ bei NickLaunches Eingereicht â Das Ist Wirklich Passiert",excerpt:"Ein ehrlicher Erfahrungsbericht aus erster Hand über die Einreichung von BackDrop_ bei NickLaunches â was Backlinks und DR wirklich bedeuten, die echten Analytics und Wachstumstools dahinter, und ob es sich gelohnt hat.",date:"23. Juli 2026",readTime:"10 Min. Lesezeit",tag:"Meinung",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"Suchst du eine Live-Video-Wallpaper-App? Das Funktioniert Wirklich.",excerpt:"Die meisten 'Video-Wallpaper'-Apps werden zugedeckt, sobald du ein Fenster öffnest. BackDrop_ v1.1.2 löst das echte Problem â ein Video-Overlay, das sichtbar bleibt, während du wirklich arbeitest.",date:"18. Juli 2026",readTime:"7 Min. Lesezeit",tag:"Produkt",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"Mehrsprachiger Content Ist Echtes SEO. So Machen Wir Es Genau.",excerpt:"Warum mehrsprachiger Content eine echte Strategie für organische Reichweite ist (kein Hype), und wie wir einen echten Artikel über dein Produkt in 9 Sprachen schreiben und lokalisieren.",date:"18. Juli 2026",readTime:"7 Min. Lesezeit",tag:"SEO & Content",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"Was Kostet eine Website Wirklich im Jahr 2026? Echte Preise, Kein Raten",excerpt:"Echte Website-Preise für 2026 â DIY-Baukästen, Freelancer, Agenturen und maÃgeschneiderte Festpreis-Websites, aufgeschlüsselt nach Branche, mit den versteckten Kosten, die dir niemand nennt.",date:"14. Juli 2026",readTime:"8 Min. Lesezeit",tag:"Webdesign",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"Ihre Küche Ist Michelin-Niveau. Ihre Website Auch?",excerpt:"Warum die Website eines Fine-Dining-Restaurants oft das schwächste Glied im Erlebnis ist, was das die Gäste wirklich kostet, und wie eine Website aussieht, die dem Niveau der Küche entspricht.",date:"12. Juli 2026",readTime:"6 Min. Lesezeit",tag:"Webdesign",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"Wie Man eine Softwarelizenz Offline Verifiziert (Ohne Internet)",excerpt:"Wie deine Desktop-App eine Lizenz mit null Netzwerkaufrufen prüfen kann â mit Ed25519-signierten Leases statt eines einfachen lokalen Caches, den jeder bearbeiten kann. Echter Code für Python und Node.js/Electron.",date:"9. Juli 2026",readTime:"7 Min. Lesezeit",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"Wie Man Lizenzschlüssel zu Seiner Desktop-App Hinzufügt, Ohne ein Eigenes Backend zu Bauen",excerpt:"Praktische Anleitung zum Hinzufügen von gerätegebundenen Lizenzschlüsseln, Aktivierung und Testversionen zu deiner Electron-, Python- oder .NET-App â mit einer kleinen gehosteten API statt eigenem Backend.",date:"9. Juli 2026",readTime:"6 Min. Lesezeit",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Standalone-Python-Executables mit Nuitka kompilieren und Maschinen-Overhead eliminieren",excerpt:"Der ultimative Leitfaden für ultraschnelle .exe-Dateien unter Windows, ohne langsame Runtime-Pakete wie PyInstaller.",date:"10. Juni 2026",readTime:"12 Min. Lesezeit",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"Das Internet ertrinkt in Kopien â Ein Manifest über Authentizität",excerpt:"Das Internet ertrinkt in KI-generierten Klonen. Ein persönliches Manifest darüber, warum Authentizität und Einsatz 2026 noch wichtig sind â und was wir bei Sublimearts dagegen tun.",date:"9. Juni 2026",readTime:"5 Min. Lesezeit",tag:"Werte",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Videos während der Arbeit unter Windows ansehen â Die Methode, die wirklich funktioniert",excerpt:"Du hast Videos auf deiner Festplatte, die du sehen möchtest. Du hast Arbeit zu erledigen. Jede bestehende Lösung zwingt dich zu wählen. Dieser Leitfaden vergleicht alle echten Optionen für lokale Dateien.",date:"6. Juni 2026",readTime:"5 Min. Lesezeit",tag:"Leitfaden",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"Faire Preise für alle: Warum wir Kaufkraftparität unterstützen",excerpt:"Wir haben unsere Software für 35+ Länder günstiger gemacht â automatisch, ohne Gutschein. Warum wir glauben, dass faire Preise wichtiger sind als maximaler Gewinn.",date:"6. Juni 2026",readTime:"4 Min. Lesezeit",tag:"Preise & Werte",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"Ich hatte 300 Stunden Video, die ich nie geschaut habe. Also baute ich BackDrop_.",excerpt:"Ein Ghost-Video-Overlay für Windows, das dir ermöglicht, jedes lokale Video während der Arbeit zu schauen. Keine PiP-Einschränkungen, keine Bildschirmübernahme.",date:"4. Juni 2026",readTime:"4 Min. Lesezeit",tag:"Produkt",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Wie man groÃe Videodateien unter Windows ohne Qualitätsverlust komprimiert",excerpt:"Jede groÃe MP4-, MKV- oder AVI-Datei â lokal auf 10% verkleinern mit GPU. Keine Cloud, kein Abo, kein Qualitätsverlust.",date:"3. Juni 2026",readTime:"5 Min. Lesezeit",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit hat meinen Post über Videokomprimierung entfernt. Also habe ich einen Blog-Post darüber geschrieben.",excerpt:"Nach 20+ Versuchen, nützliche Inhalte auf Reddit zu teilen, wurde jeder Post entfernt. Was ich darüber denke und was stattdessen wirklich funktioniert.",date:"3. Juni 2026",readTime:"5 Min. Lesezeit",tag:"Meinung",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"OBS-Aufnahmen auf Windows komprimieren ohne sie hochzuladen",excerpt:"OBS-Dateien erreichen 10â30 GB. So schrumpfen Sie sie lokal mit der GPU auf 10% â keine Cloud, kein Abo.",date:"3. Juni 2026",readTime:"5 Min. Lesezeit",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"In der Ãffentlichkeit zu bauen sollte nicht bedeuten, alleine zu bauen.",excerpt:"Warum wir einen Community-Raum für Indie-Devs, Designer und Nutzer unserer Tools aufbauen. Ein Ort zum Fragen, Teilen und nicht allein zu sein.",date:"3. Juni 2026",readTime:"3 Min. Lesezeit",tag:"Community",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"Typographie-Grundlagen: 8 Konzepte, die jeder Designer kennen muss",excerpt:"Kerning, Tracking, Zeilenabstand, Typografieskala, Kontrast â die unsichtbaren Regeln des guten Designs. Mit 8 kostenlosen interaktiven Demos.",date:"1. Juni 2026",readTime:"6 Min. Lesezeit",tag:"Design-Lektion",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Videos mit GPU unter Windows komprimieren â 5â10x schneller als die CPU",excerpt:"Nutze deine NVIDIA, AMD oder Intel GPU für schnellere H.264/H.265 Komprimierung. Kostenlose Anleitung + das Windows-Tool dafür.",date:"30. Mai 2026",readTime:"5 Min. Lesezeit",tag:"Tutorial",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"Wie man alle Tweets auf einmal löscht â Kostenlos, kein API",excerpt:"X hat keinen 'Alles löschen'-Button. Kostenpflichtige Tools verlangen monatliche Gebühren. Dieses kostenlose Skript erledigt es in Minuten.",date:"30. Mai 2026",readTime:"4 Min. Lesezeit",tag:"Kostenloses Tool",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"Warum ich für jeden Auftrag standardmäÃig native mehrsprachige Next.js-Routen (IT/EN/ES) entwerfe",excerpt:"Die Abbildung internationaler SEO-Routen in Next.js/Astro verhindert Rendering-Lag und eliminiert Fehler durch langsame automatische Ãbersetzer.",date:"28. Mai 2026",readTime:"8 Min. Lesezeit",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"Ausdrucksstarke Typografie als primäres Branding-Werkzeug für unabhängige Handwerksstudios",excerpt:"Gegen KI-Ãsthetik-Normalisierung setzt das unabhängige Studio auf asymmetrische Rhythmen und markante Helvetica-Schriften.",date:"15. April 2026",readTime:"6 Min. Lesezeit",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},fr:{readMore:"Lire l'article â",posts:[{slug:"aftercast",title:"Aftercast : J'ai Lancé un Studio de Jeu en Solo et Sorti un Jeu de Sniper Gratuit",excerpt:"Aucune publicité pendant la partie, aucun dark pattern, des numéros de version honnêtes, un changelog public. Découvrez Aftercast â et jouez à Snaiper, un jeu de sniper gratuit dans le navigateur avec vent, chute et temps de vol réels.",date:"27 septembre 2026",readTime:"6 min de lecture",tag:"Studio",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"On a Construit Deux Annuaires de Lancement. Voici Tous les Autres Qu'on Utilise Vraiment.",excerpt:"La vraie histoire derrière runs.space et runs-this.today â plus la liste honnête de chaque autre annuaire de lancement de startup actuellement dans notre propre rotation.",date:"15 septembre 2026",readTime:"8 min de lecture",tag:"Guide",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake : Lequel Utiliser Vraiment ?",excerpt:"Une comparaison honnête, fonction par fonction â gratuit et open source contre une suite à $39 en paiement unique, réglages denses contre interface moderne, et où chacun gagne vraiment.",date:"1 septembre 2026",readTime:"11 min de lecture",tag:"Comparatif",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"Le Widget de Fuseau Horaire pour Windows Conçu pour Ne Plus Jamais Rater un Appel",excerpt:"Time Precision est un widget Windows gratuit â 233 villes, survol pour les secondes en direct, 9 finitions, glisser-déposer. Sans compte, sans abonnement.",date:"5 août 2026",readTime:"8 min de lecture",tag:"Produit",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"Les Clés de Licence Logicielle, Enfin Bien Expliquées",excerpt:'"Clé de licence", "product key", "serial key" â quatre termes pour des systèmes assez différents. Ce qu\'ils sont, comment ils fonctionnent, les types, et comment en ajouter une à votre app.',date:"30 Juillet 2026",readTime:"13 min de lecture",tag:"Guide",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX : La Différence que Personne N'explique Vraiment",excerpt:"UI et UX ne sont pas la même chose, et les confondre coûte de l'argent réel. 8 comparaisons claires, des exemples concrets et un quiz interactif pour te tester.",date:"28 juillet 2026",readTime:"9 min de lecture",tag:"Leçon de Design",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"J'ai Soumis BackDrop_ à NickLaunches â Voici Ce Qui S'est Vraiment Passé",excerpt:"Un récit honnête à la première personne sur la soumission de BackDrop_ à NickLaunches â ce que backlinks et DR signifient vraiment, les vraies analytics et outils de croissance derrière, et si ça en valait la peine.",date:"23 juillet 2026",readTime:"10 min de lecture",tag:"Opinion",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"Tu Cherches une App de Fond d'Ãcran Vidéo Live ? Voici Ce Qui Marche Vraiment.",excerpt:'La plupart des apps de "fond d\'écran vidéo" sont recouvertes dès que tu ouvres une fenêtre. BackDrop_ v1.1.2 résout le vrai problème â un overlay vidéo qui reste visible pendant que tu travailles vraiment.',date:"18 juillet 2026",readTime:"7 min de lecture",tag:"Produit",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"Le Contenu Multilingue Est du Vrai SEO. Voici Exactement Comment On Le Fait.",excerpt:"Pourquoi le contenu multilingue est une vraie stratég
1ie de portée organique (pas juste du hype), et comment nous écrivons et localisons un vrai article sur votre produit en 9 langues.",date:"18 juillet 2026",readTime:"7 min de lecture",tag:"SEO & Contenu",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"Combien Coûte Vraiment un Site Web en 2026 ? Vrais Prix, Sans Deviner",excerpt:"Vrais prix de sites web pour 2026 â créateurs DIY, freelances, agences et sites sur mesure à prix fixe, détaillés par type d'activité, avec les coûts cachés que personne ne mentionne.",date:"14 juillet 2026",readTime:"8 min de lecture",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"Votre Cuisine Est de Niveau Michelin. Votre Site l'Est-Il ?",excerpt:"Pourquoi le site d'un restaurant gastronomique est souvent le maillon le plus faible de l'expérience, ce que cela coûte vraiment aux clients, et à quoi ressemble un site à la hauteur de la cuisine.",date:"12 juillet 2026",readTime:"6 min de lecture",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"Comment Vérifier une Licence Logicielle Hors Ligne (Sans Internet)",excerpt:"Comment faire vérifier une licence à votre app de bureau avec zéro appel réseau, avec des leases signés Ed25519 au lieu d'un simple cache local modifiable. Code réel pour Python et Node.js/Electron.",date:"9 Juillet 2026",readTime:"7 min de lecture",tag:"Tutoriel",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"Comment Ajouter des Clés de Licence à Votre App de Bureau Sans Construire de Backend",excerpt:"Guide pratique pour ajouter des clés de licence liées à la machine, l'activation et les essais à votre app Electron, Python ou .NET â avec une petite API hébergée au lieu de votre propre backend.",date:"9 Juillet 2026",readTime:"6 min de lecture",tag:"Tutoriel",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Compiler des exécutables Python standalone avec Nuitka pour éliminer la surcharge machine",excerpt:"Le guide définitif pour lancer des fichiers .exe ultra-rapides sous Windows, sans avoir besoin de lents paquets runtime comme PyInstaller.",date:"10 Juin 2026",readTime:"12 min de lecture",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"Internet se noie dans les copies â Un manifeste sur l'authenticité",excerpt:"Internet se noie dans des clones générés par IA. Un manifeste personnel sur pourquoi l'authenticité et l'effort comptent encore en 2026 â et ce que nous faisons à ce sujet.",date:"9 Juin 2026",readTime:"5 min de lecture",tag:"Valeurs",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Comment regarder des vidéos en travaillant sous Windows â La méthode qui fonctionne vraiment",excerpt:"Tu as des vidéos sur ton disque que tu veux regarder. Tu as du travail à faire. Chaque solution existante te force à choisir l'un ou l'autre. Ce guide compare toutes les options réelles pour les fichiers locaux.",date:"6 Juin 2026",readTime:"5 min de lecture",tag:"Guide",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"Prix équitables pour tous : pourquoi nous soutenons la parité de pouvoir d'achat",excerpt:"Nous venons de rendre notre logiciel moins cher pour 35+ pays â automatiquement, sans coupon. Pourquoi nous croyons que des prix équitables comptent plus que le profit maximum.",date:"6 Juin 2026",readTime:"4 min de lecture",tag:"Prix & Valeurs",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"J'avais 300 heures de vidéo que je n'ai jamais regardées. Alors j'ai créé BackDrop_.",excerpt:"Un overlay vidéo fantôme pour Windows qui te permet de regarder n'importe quelle vidéo locale tout en travaillant. Sans limites PiP, sans occuper l'écran.",date:"4 Juin 2026",readTime:"4 min de lecture",tag:"Produit",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Comment compresser de grands fichiers vidéo sous Windows sans perte de qualité",excerpt:"N'importe quel grand fichier MP4, MKV ou AVI â réduisez-le à 10% localement avec GPU. Sans cloud, sans abonnement, sans perte de qualité.",date:"3 Juin 2026",readTime:"5 min de lecture",tag:"Tutoriel",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit a supprimé mon post sur la compression vidéo. Alors j'ai écrit un article de blog.",excerpt:"Après 20+ tentatives de partager du contenu utile sur Reddit, chaque post a été supprimé. Ce que j'en pense et ce qui fonctionne vraiment à la place.",date:"3 Juin 2026",readTime:"5 min de lecture",tag:"Opinion",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"Comment compresser les enregistrements OBS sur Windows sans les uploader nulle part",excerpt:"Les fichiers OBS atteignent 10â30 Go. Voici comment les réduire à 10% localement avec votre GPU â sans cloud, sans abonnement.",date:"3 Juin 2026",readTime:"5 min de lecture",tag:"Tutoriel",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"Construire en public ne devrait pas signifier construire seul.",excerpt:"Pourquoi nous construisons un espace communautaire pour les devs indés, designers et utilisateurs de nos outils. Un endroit pour poser des questions, partager et ne pas se sentir seul.",date:"3 Juin 2026",readTime:"3 min de lecture",tag:"Communauté",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"Fondamentaux de la Typographie : 8 Concepts que Tout Designer Doit Connaître",excerpt:"Crénage, approche, interlignage, échelle typographique, contraste â les règles invisibles du bon design. Avec 8 démos interactives gratuites.",date:"1 Juin 2026",readTime:"6 min de lecture",tag:"Leçon de Design",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Compresser des vidéos avec GPU sous Windows â 5â10x plus rapide que le CPU",excerpt:"Utilisez votre GPU
1NVIDIA, AMD ou Intel pour une compression H.264/H.265 beaucoup plus rapide. Guide gratuit + l'outil Windows dédié.",date:"30 Mai 2026",readTime:"5 min de lecture",tag:"Tutoriel",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"Comment supprimer tous ses tweets d'un coup â Gratuit, sans API",excerpt:"X n'a pas de bouton 'tout supprimer'. Les outils payants facturent mensuellement. Ce script gratuit le fait en quelques minutes.",date:"30 Mai 2026",readTime:"4 min de lecture",tag:"Outil Gratuit",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"Pourquoi je conçois des routes Next.js multilingues natives (IT/EN/ES) par défaut sur chaque commande",excerpt:"Mapper les routes SEO internationales dans Next.js/Astro prévient le lag de rendu et élimine les défauts rencontrés avec les traducteurs automatiques lents.",date:"28 Mai 2026",readTime:"8 min de lecture",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"La typographie expressive comme outil de branding primaire pour les studios artisanaux indépendants",excerpt:"Face à la normalisation esthétique de l'IA, le studio indépendant s'impose en alternant rythmes asymétriques et caractères helvetiques percutants.",date:"15 Avril 2026",readTime:"6 min de lecture",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},zh:{readMore:"é
读æç« â",posts:[{slug:"aftercast",title:"Aftercast:æç¬èªåç«äºä¸å®¶æ¸¸æå·¥ä½å®¤,å¹¶åå¸äºä¸æ¬¾å
è´¹ç廿¸¸æ",excerpt:"游æè¿ç¨ä¸æ 广åãæ æé»æ¨¡å¼ãè¯å®ççæ¬å·ãå
¬å¼çæ´æ°æ¥å¿ãè®¤è¯ Aftercastââç
ç© Snaiper,䏿¬¾æ¥æçå®é£åãå¼¹éä¸å ä¸é£è¡æ¶é´çå
è´¹æµè§å¨ç廿¸¸æã",date:"2026å¹´9æ27æ¥",readTime:"6åéé
读",tag:"å·¥ä½å®¤",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"æä»¬äº²æå»ºäºä¸¤ä¸ªåå¸ç®å½ãè¿æ¯æä»¬çæ£å¨ç¨çå
¶ä»æ¯ä¸ä¸ªã",excerpt:"runs.spaceåruns-this.todayèåçç宿
äºââ以åæä»¬ç®åå®é
å¨ç¨çæ¯ä¸ä¸ªå
¶ä»åä¸åå¸ç®å½çè¯å®æ¸
åã",date:"2026å¹´9æ15æ¥",readTime:"8åéé
读",tag:"æå",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrakeï¼ä½ å°åºè¯¥ç¨åªä¸ªï¼",excerpt:"ä¸ä»½è¯å®çé项åè½å¯¹æ¯ââå
è´¹å¼æº vs 䏿¬¡æ§ $39 å·¥å
·å
ï¼å¯éç设置 vs ç°ä»£åçé¢ï¼ä»¥ååèªçæ£çä¼å¿æå¨ã",date:"2026å¹´9æ1æ¥",readTime:"11åéé
读",tag:"对æ¯",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"è¿æ¬¾Windowsæ¶åºå°ç»ä»¶ï¼ä¸ä¸ºè®©ä½ åä¹ä¸ä¼éè¿ä¸æ¬¡éè¯èç",excerpt:"Time Precisionæ¯ä¸æ¬¾å
è´¹çWindowsæ¡é¢å°ç»ä»¶ââ233座åå¸ï¼æ¬åæ¥ç宿¶ç§æ°ï¼9ç§å¤è§ï¼ææ¾æåºãæ éè´¦æ·ï¼æ é订é
ã",date:"2026å¹´8æ5æ¥",readTime:"é
读é8åé",tag:"产å",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"software-license-key-guide",title:"软件许å¯è¯å¯é¥ï¼è®²æ¸
æ¥",excerpt:"ã许å¯è¯å¯é¥ãã产åå¯é¥ããåºåå·ãââå个æè¿°å®å
¨ä¸åç³»ç»çæ¯è¯ãå®ä»¬æ¯ä»ä¹ãå¦ä½è¿ä½ãæåªäºç±»åï¼ä»¥åå¦ä½ä¸ºä½ çåºç¨æ·»å ä¸ä¸ªã",date:"2026å¹´7æ30æ¥",readTime:"13åéé
读",tag:"æå",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI ä¸ UXï¼æ²¡äººè®²æ¸
æ¥çé£ä¸ªåºå«",excerpt:"UI å UX 并䏿¯ä¸åäºï¼æ··æ·å®ä»¬ä¼ä»åºçéç½é¶ç代价ã8ç»æ¸
æ°å¯¹æ¯ãç宿¡ä¾ï¼ä»¥åä¸ä¸ªäºå¨æµéªè®©ä½ äº²èªæ£éªã",date:"2026å¹´7æ28æ¥",readTime:"é
读é9åé",tag:"设计课ç¨",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"ææ BackDrop_ æäº¤ç»äº NickLaunchesââçå®ç»åå享",excerpt:"ä¸ä»½è¯å®ç第ä¸äººç§°è®°å½ï¼å¨ NickLaunches 䏿¶ BackDrop_ââbacklink å DR å°åºæ¯ä»ä¹ææï¼å¹³å°èåçå®çåææ°æ®åå¢é¿å·¥å
·ï¼ä»¥åè¿ä¸åæ¯å¦å¼å¾ã",date:"2026å¹´7æ23æ¥",readTime:"é
读é10åé",tag:"è§ç¹",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"卿¾å¨æè§é¢å£çº¸åºç¨ï¼è¿ææ¯çæ£æç¨çæ¹æ¡ã",excerpt:"大夿°ãè§é¢å£çº¸ãåºç¨ä¸æå¼çªå£å°±è¢«é®ä½äºãBackDrop_ v1.1.2è§£å³äºçæ£çé®é¢ââä¸ä¸ªå¨ä½ çæ£å·¥ä½æ¶ä¾ç¶å¯è§çè§é¢å å å±ã",date:"2026å¹´7æ18æ¥",readTime:"é
读é7åé",tag:"产å",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"å¤è¯è¨å
å®¹ææ¯çæ£çSEOãè¿æ£æ¯æä»¬çåæ³ã",excerpt:"为ä»ä¹å¤è¯è¨å
容æ¯ä¸ç§çå®çèªç¶æµéå¢é¿çç¥ï¼èéçä½ï¼ï¼ä»¥åæä»¬ç©¶ç«å¦ä½ä¸ºæ¨çäº§åæ°åå¹¶æ¬å°åä¸ç¯çå®æç« ï¼è¦ç9ç§è¯è¨ã",date:"2026å¹´7æ18æ¥",readTime:"é
读é7åé",tag:"SEOä¸å
容",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"2026å¹´ä¸ä¸ªç½ç«ç©¶ç«è¦è±å¤å°é±ï¼çå®ä»·æ ¼ï¼ä¸åçæµ",excerpt:"2026å¹´çå®çç½ç«å»ºè®¾ä»·æ ¼ââDIY建ç«å·¥å
·ãèªç±èä¸è
ãä»£çæºæä¸åºå®ä»·æ ¼çå®å¶å»ºç«ï¼æè¡ä¸ç±»åç»åï¼é䏿²¡äººåè¯ä½ çéèè´¹ç¨ã",date:"2026å¹´7æ14æ¥",readTime:"é
读é8åé",tag:"ç½é¡µè®¾è®¡",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"æ¨çæç已达米å
¶ææ°´åãæ¨çç½ç«å¢ï¼",excerpt:"为ä»ä¹é«ç«¯é¤å
çç½ç«å¸¸å¸¸æ¯ä½éªä¸æèå¼±çä¸ç¯ï¼
1è¿å¯¹å®¢æ·æå³çä»ä¹ä»£ä»·ï¼ä»¥åä¸ä¸ªé
å¾ä¸æ¨æçæ°´åçç½ç«åºè¯¥æ¯ä»ä¹æ ·åã",date:"2026å¹´7æ12æ¥",readTime:"é
读é6åé",tag:"ç½é¡µè®¾è®¡",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"å¦ä½ç¦»çº¿éªè¯è½¯ä»¶è®¸å¯è¯ï¼æ éäºèç½ï¼",excerpt:"å¦ä½è®©ä½ çæ¡é¢åºç¨ä»¥é¶ç½ç»è°ç¨éªè¯è®¸å¯è¯ââä½¿ç¨ Ed25519 ç¾åç§çº¦ï¼èéä»»ä½äººé½è½ç¼è¾çç®åæ¬å°ç¼åãé Python å Node.js/Electron ççå®ä»£ç ã",date:"2026å¹´7æ9æ¥",readTime:"7åéé
读",tag:"æç¨",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"å¦ä½å¨ä¸èªå»ºå端çæ
åµä¸ä¸ºä½ çæ¡é¢åºç¨æ·»å 许å¯è¯å¯é¥",excerpt:"ä¸ºä½ ç ElectronãPython æ .NET æ¡é¢åºç¨æ·»å 设å¤ç»å®è®¸å¯è¯å¯é¥ãæ¿æ´»åè¯ç¨çå®ç¨æåââ使ç¨å°åæç®¡ APIï¼è䏿¯èªå»ºææå端ã",date:"2026å¹´7æ9æ¥",readTime:"6åéé
读",tag:"æç¨",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"使ç¨Nuitkaç¼è¯Pythonç¬ç«å¯æ§è¡æä»¶ä»¥æ¶é¤æºå¨å¼é",excerpt:"å¨Windowsä¸å¯å¨è¶
å¿«.exeæä»¶çæå¨æåï¼æ éPyInstallerçæ
¢éè¿è¡æ¶å
ã",date:"2026å¹´6æ10æ¥",readTime:"12åéé
读",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"äºèç½æ£å¨è¢«å¤å¶å淹没 â ä¸ä½å¼åè
å
³äºç宿§ç宣è¨",excerpt:"äºèç½æ£å¨è¢«AIçæçå
éåæ·¹æ²¡ãä¸ç¯å
³äºç宿§ååªå为ä½å¨2026å¹´ä»ç¶éè¦ç个人宣è¨ââ以åæä»¬å¨Sublimeartsä¸ºæ¤æåçäºæ
ã",date:"2026å¹´6æ9æ¥",readTime:"5åéé
读",tag:"ä»·å¼è§",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"å¦ä½å¨Windows工使¶çè§é¢ââçæ£ææçæ¹æ³",excerpt:"ä½ ææ³ççè§é¢ï¼ä¹æå·¥ä½è¦åãç°æçæ¯ç§è§£å³æ¹æ¡é½å¼ºè¿«ä½ äºéä¸ãæ¬æåæ¯è¾äºæææ¬å°æä»¶ææ¾ççå®é项ã",date:"2026å¹´6æ6æ¥",readTime:"5åéé
读",tag:"æå",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"人人å
¬å¹³å®ä»·ï¼ä¸ºä»ä¹æä»¬æ¯æè´ä¹°å平价",excerpt:"æä»¬åå为35+个å½å®¶èªå¨éä½äºè½¯ä»¶ä»·æ ¼ââæ é伿 å¸ã为ä»ä¹æä»¬ç¸ä¿¡å
¬å¹³å®ä»·æ¯æå¤§å©æ¶¦æ´éè¦ã",date:"2026å¹´6æ6æ¥",readTime:"4åéé
读",tag:"å®ä»·ä¸ä»·å¼è§",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"ææ300å°æ¶çè§é¢ä»æªçè¿ãäºæ¯ææå»ºäºBackDrop_ã",excerpt:"䏿¬¾Windowså¹½çµè§é¢å å å±ï¼è®©ä½ å¨å·¥ä½æ¶è§ç任使¬å°è§é¢ãæ PiPéå¶ï¼æ å±å¹å ç¨ãä½ çå
容ï¼ç»äºè¢«è§çã",date:"2026å¹´6æ4æ¥",readTime:"4åéé
读",tag:"产å",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"å¦ä½å¨Windowsä¸å缩大åè§é¢æä»¶èä¸æå¤±è´¨é",excerpt:"ä»»ä½å¤§åMP4ãMKVæAVIæä»¶ââç¨GPU卿¬å°å缩å°10%ãæ éäºç«¯ï¼æ é订é
ï¼æ è´¨éæå¤±ã",date:"2026å¹´6æ3æ¥",readTime:"5åéé
读",tag:"æç¨",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Redditå é¤äºæçè§é¢å缩å¸åãæä»¥æåäºä¸ç¯å客æç« ã",excerpt:"å¨20夿¬¡å°è¯å¨Redditä¸å享æç¨å
容åï¼æ¯ç¯å¸åé½è¢«å é¤äºãæçæ³æ³ä»¥åçæ£ææçæ¿ä»£æ¹æ¡ã",date:"2026å¹´6æ3æ¥",readTime:"5åéé
读",tag:"è§ç¹",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"å¦ä½å¨Windowsä¸å缩OBSå½åèä¸ä¸ä¼ å°ä»»ä½å°æ¹",excerpt:"OBSæä»¶å¯è¾¾10â30GBã以䏿¯å¦ä½ç¨GPU卿¬å°å°å
¶å缩å°10%大å°ââæ éäºç«¯ï¼æ é订é
ã",date:"2026å¹´6æ3æ¥",readTime:"5åéé
读",tag:"æç¨",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"å
¬å¼æå»ºä¸åºè¯¥æå³çç¬èªæå»ºã",excerpt:"为ä»ä¹æä»¬è¦ä¸ºç¬ç«å¼åè
ã设计å¸åå·¥å
·ç¨æ·æ
1建社åºç©ºé´ãä¸ä¸ªæé®ãå享ãä¸åå¤ç¬çå°æ¹ã",date:"2026å¹´6æ3æ¥",readTime:"3åéé
读",tag:"社åº",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"æçåºç¡ï¼æ¯ä¸ªè®¾è®¡å¸å¿
é¡»äºè§£ç8个æ¦å¿µ",excerpt:"åè·ã追踪ãè¡è·ãå使¯ä¾ã对æ¯åº¦ââå°å¥½è®¾è®¡ä¸ä¼ç§è®¾è®¡åºå弿¥çéå½¢è§åãå
å«8个å
è´¹äºå¨æ¼ç¤ºã",date:"2026å¹´6æ1æ¥",readTime:"6åéé
读",tag:"设计课ç¨",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"å¦ä½å¨Windowsä¸ç¨GPUå缩è§é¢ â æ¯CPUå¿«5â10å",excerpt:"使ç¨NVIDIAãAMDæIntel GPU以æ´å¿«é度å缩H.264/H.265è§é¢ãå
è´¹æå + ä¸ä¸ºæ¤æå»ºçWindowså·¥å
·ã",date:"2026å¹´5æ30æ¥",readTime:"5åéé
读",tag:"æç¨",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"å¦ä½ä¸æ¬¡æ§å é¤æææ¨æ â å
è´¹ï¼æ éAPI",excerpt:"X没æå
¨é¨å 餿é®ãä»è´¹å·¥å
·æææ¶è´¹ãè¿ä¸ªå
è´¹æµè§å¨èæ¬å åéå°±è½æå®ã",date:"2026å¹´5æ30æ¥",readTime:"4åéé
读",tag:"å
费工å
·",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"为ä»ä¹æå¨æ¯ä¸ªé¡¹ç®ä¸é»è®¤æå»ºåçå¤è¯è¨Next.jsè·¯ç±(IT/EN/ES)",excerpt:"å¨Next.js/Astro䏿 å°å½é
SEOè·¯ç±å¯é²æ¢æ¸²æå»¶è¿ï¼å¹¶æ¶é¤ä½¿ç¨æ
¢éèªå¨ç¿»è¯å¨æ¶åç°ç缺é·ã",date:"2026å¹´5æ28æ¥",readTime:"8åéé
读",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"è¡¨è¾¾æ§æçä½ä¸ºç¬ç«å·¥å å·¥ä½å®¤ç主è¦åçå·¥å
·",excerpt:"对æAI审ç¾åè´¨åï¼ç¬ç«å·¥ä½å®¤éè¿äº¤æ¿ä½¿ç¨ä¸å¯¹ç§°èå¥åéç®çHelvetica飿 ¼å使¥å½°æ¾èªæã",date:"2026å¹´4æ15æ¥",readTime:"6åéé
读",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},ja:{readMore:"è¨äºãèªã â",posts:[{slug:"aftercast",title:"Aftercast:ã²ã¨ãã§ã²ã¼ã ã¹ã¿ã¸ãªãç«ã¡ä¸ããç¡æã®çæã²ã¼ã ãå
¬éãã",excerpt:"ãã¬ã¤ä¸ã®åºåãªãããã¼ã¯ãã¿ã¼ã³ãªããæ£ç´ãªãã¼ã¸ã§ã³çªå·ãå
¬éãã§ã³ã¸ãã°ãAftercastãç´¹ä»ââããã¦Snaiperããã¬ã¤ãæ¬ç©ã®é¢¨ãå¼¾éè½ä¸ãé£è¡æéãåç¾ããç¡æãã©ã¦ã¶çæã²ã¼ã ã",date:"2026å¹´9æ27æ¥",readTime:"6åã§èªãã¾ã",tag:"ã¹ã¿ã¸ãª",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"èªåãã¡ã§ãã¼ã³ããã£ã¬ã¯ããªã2ã¤ä½ãã¾ãããå®éã«ä½¿ã£ã¦ããä»ã®ãã¹ã¦ããã¡ãã§ãã",excerpt:"runs.spaceã¨runs-this.todayã®è£ã«ããæ¬å½ã®ç©èªââããã¦ç¾å¨å®éã«ãã¼ãã¼ã·ã§ã³ã§ä½¿ã£ã¦ããä»ã®ãã¹ã¦ã®ã¹ã¿ã¼ãã¢ãããã¼ã³ããã£ã¬ã¯ããªã®æ£ç´ãªãªã¹ãã",date:"2026å¹´9æ15æ¥",readTime:"8åã§èªãã¾ã",tag:"ã¬ã¤ã",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrakeï¼å®éã©ã¡ãã使ãã¹ãï¼",excerpt:"ç¡æã§ãªã¼ãã³ã½ã¼ã¹ vs 䏿¬æã$39ã®ãã¼ã«ããããå¯åº¦ã®é«ãè¨å® vs ã¢ãã³ãªã¤ã³ã¿ã¼ãã§ã¼ã¹ââæ©è½ãã¨ã«æ£ç´ã«æ¯è¼ãããããããæ¬å½ã«åãç¹ãæ¤è¨¼ã",date:"2026å¹´9æ1æ¥",readTime:"11åã§èªäº",tag:"æ¯è¼",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"Windowsã¿ã¤ã ã¾ã¼ã³ã¦ã£ã¸ã§ããââããäºåº¦ã¨é話ãéããªãããã«ä½ããã¾ãã",excerpt:"Time Precisionã¯ç¡æã®Windowsãã¹ã¯ãããã¦ã£ã¸ã§ããã§ãââ233é½å¸ãããã¼ã§ãªã¢ã«ã¿ã¤ã ã®ç§æ°ã9種é¡ã®ä»ä¸ãããã©ãã°&ããããã§ä¸¦ã¹æ¿ããã¢ã«ã¦ã³ãä¸è¦ããµãã¹ã¯ãªãã·ã§ã³ãªãã",date:"2026å¹´8æ5æ¥",readTime:"èªäºæé8å",tag:"製å",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"ã½ããã¦ã§ã¢ã©ã¤ã»ã³ã¹ãã¼ãããã¡ãã¨è§£èª¬ãã",excerpt:"ãã©ã¤ã»ã³ã¹ãã¼ãããããã¯ããã¼ããã·ãªã¢ã«ãã¼ãââ4ã¤ã®è¨èãæãã®ã¯ãå®ã¯ããªãéãä»çµã¿ããããä½ããã©ãæ©è½ãããã種é¡ãããã¦ã¢ããªã¸ã®è¿½å æ¹æ³ã",date:"2026å¹´7æ30æ¥",readTime:"13åã§èªãã¾ã",tag:"ã¬ã¤ã",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI 㨠UXï¼èª°ãã¡ããã¨èª¬æããªãéã",excerpt:"UIã¨UXã¯åããã®ã§ã¯ãªããæ··åããã¨å®éã«ãéãç¡é§ã«ãã¾ãã8ã¤ã®æå¿«ãªæ¯è¼ãå®ä¾ãããã¦èªåã試ããã¤ã³ã¿ã©ã¯ãã£ããªã¯ã¤ãºã",date:"2026å¹´7æ28æ¥",readTime:"èªäºæé9å",tag:"ãã¶ã¤ã³ã¬ãã¹ã³",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"BackDrop_ãNickLaunchesã«ç»é²ãã¦ã¿ãââå®éã«èµ·ãããã¨",excerpt:"BackDrop_ãNickLaunchesã«æ²è¼ãããæ£ç´ãªä¸äººç§°ã®ä½é¨è«ââããã¯ãªã³ã¯ãDRãå®éã«ä½ãæå³ããã®ãããã®è£ã«ããæ¬ç©ã®åæãã¼ã¿ã¨æé·ãã¼ã«ãããã¦ããã ãã®ä¾¡å¤ããã£ãã
1®ãã",date:"2026å¹´7æ23æ¥",readTime:"10åã§èªãã¾ã",tag:"æè¦",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"ã©ã¤ãåç»å£ç´ã¢ããªããæ¢ãã§ããï¼æ¬å½ã«æ©è½ããã®ã¯ããã§ãã",excerpt:"ã»ã¨ãã©ã®ãåç»å£ç´ãã¢ããªã¯ã¦ã£ã³ãã¦ãéããç¬éã«é ãã¦ãã¾ãã¾ããBackDrop_ v1.1.2ã¯ãå®éã«ä½æ¥ãã¦ããéã表示ããç¶ããåç»ãªã¼ãã¼ã¬ã¤ã¨ããæ¬å½ã®è§£æ±ºçãæä¾ãã¾ãã",date:"2026å¹´7æ18æ¥",readTime:"èªäºæé7å",tag:"製å",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"å¤è¨èªã³ã³ãã³ãã¯æ¬ç©ã®SEOã§ããå
·ä½çãªããæ¹ããç´¹ä»ãã¾ãã",excerpt:"å¤è¨èªã³ã³ãã³ãããªãæ¬ç©ã®ãªã¼ã¬ããã¯ãªã¼ãæ¦ç¥ãªã®ãï¼åãªãèªå¤§å®£ä¼ã§ã¯ãªãï¼ãããã¦å®éã«ããªãã®è£½åã«ã¤ãã¦9è¨èªã§è¨äºãå·çã»ãã¼ã«ã©ã¤ãºããæ¹æ³ã解説ãã¾ãã",date:"2026å¹´7æ18æ¥",readTime:"èªäºæé7å",tag:"SEOï¼ã³ã³ãã³ã",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"2026å¹´ãã¦ã§ããµã¤ãã®å¶ä½è²»ç¨ã¯å®éãããï¼æ¬å½ã®ä¾¡æ ¼ãæ¨æ¸¬ãªã",excerpt:"2026å¹´ã®å®éã®ã¦ã§ããµã¤ãå¶ä½è²»ç¨ââDIYãã«ãã¼ãããªã¼ã©ã³ã¹ãå¶ä½ä¼ç¤¾ãããã¦åºå®ä¾¡æ ¼ã®ãªã¼ãã¼ã¡ã¤ãå¶ä½ãæ¥ç¨®å¥ã«åè§£ãã誰ãæãã¦ãããªãé ããã³ã¹ãã¾ã§è§£èª¬ã",date:"2026å¹´7æ14æ¥",readTime:"èªäºæé8å",tag:"ã¦ã§ããã¶ã¤ã³",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"ããªãã®æçã¯ãã·ã¥ã©ã³ã¬ãã«ãããªãã®ãµã¤ãã¯ã©ãã§ããï¼",excerpt:"é«ç´ã¬ã¹ãã©ã³ã®ã¦ã§ããµã¤ãããªãä½é¨ã®ä¸ã§æãå¼±ãé¨åã«ãªããã¡ãªã®ããããã顧客ã«ã¨ã£ã¦å®éã«ã©ã®ãããªã³ã¹ãã«ãªãã®ããããã¦æçã®ã¬ãã«ã«è¦åã£ããµã¤ãã¨ã¯ã©ã®ãããªãã®ãã",date:"2026å¹´7æ12æ¥",readTime:"èªäºæé6å",tag:"ã¦ã§ããã¶ã¤ã³",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"ã½ããã¦ã§ã¢ã©ã¤ã»ã³ã¹ããªãã©ã¤ã³ã§æ¤è¨¼ããæ¹æ³ï¼ã¤ã³ã¿ã¼ãããä¸è¦ï¼",excerpt:"誰ã§ãç·¨éã§ããåç´ãªãã¼ã«ã«ãã£ãã·ã¥ã®ä»£ããã« Ed25519 ç½²åãªã¼ã¹ã使ãããã¹ã¯ãããã¢ããªããããã¯ã¼ã¯å¼ã³åºãã¼ãã§ã©ã¤ã»ã³ã¹ã確èªã§ããããã«ããæ¹æ³ãPython 㨠Node.js/Electron ã®å®ã³ã¼ãä»ãã",date:"2026å¹´7æ9æ¥",readTime:"7åã§èªãã¾ã",tag:"ãã¥ã¼ããªã¢ã«",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"èªåã®ããã¯ã¨ã³ããæ§ç¯ããã«ãã¹ã¯ãããã¢ããªã«ã©ã¤ã»ã³ã¹ãã¼ã追å ããæ¹æ³",excerpt:"ElectronãPythonã.NETãã¹ã¯ãããã¢ããªã«ããã·ã³åºå®ã®ã©ã¤ã»ã³ã¹ãã¼ãã¢ã¯ãã£ãã¼ã·ã§ã³ããã©ã¤ã¢ã«ã追å ããå®è·µã¬ã¤ãââå°ããªãã¹ãåAPIãä½¿ãæ¹æ³ã",date:"2026å¹´7æ9æ¥",readTime:"6åã§èªãã¾ã",tag:"ãã¥ã¼ããªã¢ã«",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Nuitkaã使ç¨ãã¦ã¹ã¿ã³ãã¢ãã³Pythonå®è¡ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã·ã³ãªã¼ãã¼ããããè§£æ¶ãã",excerpt:"Windowsã§PyInstallerã®ãããªä½éãªã©ã³ã¿ã¤ã ããã±ã¼ã¸ãå¿
è¦ã¨ãããè¶
é«é.exeãã¡ã¤ã«ãèµ·åããããã®æ±ºå®çã¬ã¤ãã",date:"2026å¹´6æ10æ¥",readTime:"12åã§èªãã¾ã",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"ã¤ã³ã¿ã¼ãããã¯ã³ãã¼ã§æººãã¦ãã â çæ£æ§ã«ã¤ãã¦ã®éçºè
ã®ãããã§ã¹ã",excerpt:"ã¤ã³ã¿ã¼ãããã¯AIçæã®ã¯ãã¼ã³ã§æº¢ãã¦ãããçæ£æ§ã¨åªåã2026å¹´ã«ãã¾ã éè¦ãªçç±ã«ã¤ãã¦ã®å人çãªãããã§ã¹ãââSublimearts ã§ã®åãçµã¿ã",date:"2026å¹´6æ9æ¥",readTime:"5åã§èªãã¾ã",tag:"価å¤è¦³",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Windowsã§ä½æ¥ããªããåç»ãè¦ãæ¹æ³ââæ¬å½ã«æ©è½ããæ¹æ³",excerpt:"ãã©ã¤ãã«è¦ããåç»ããããããã¹ãä»äºããããæ¢åã®ãããã解決çã¯ã©ã¡ãããé¸ã°ããããã®ã¬ã¤ãã¯ãã¼ã«ã«ãã¡ã¤ã«ã®ãã¹ã¦ã®å®éã®é¸æè¢ãæ¯è¼ãã¾ãã",date:"2026å¹´6æ6æ¥",readTime:"5åã§èªãã¾ã",tag:"ã¬ã¤ã",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"ãã¹ã¦ã®äººã¸ã®å
¬å¹³ãªä¾¡æ ¼ï¼è³¼è²·å平価ããµãã¼ãããçç±",excerpt:"35ã«å½ä»¥ä¸ã®ã½ããã¦ã§ã¢ãèªåçã«å¤ä¸ããã¾ããââã¯ã¼ãã³ä¸è¦ãæå¤§å©çãããå
¬å¹³ãªä¾¡æ ¼ãéè¦ã ã¨ä¿¡ããçç±ã",date:"2026å¹´6æ6æ¥",readTime:"4åã§èªãã¾ã",tag:"ä¾¡æ ¼ã»ä¾¡å¤è¦³",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"è¦ã¦ããªãåç»ã300æéåãã£ããã ããBackDrop_ãä½ã£ãã",excerpt:"使¥ããªãããã¼ã«ã«åç»ãè¦è´ã§ããWindowsç¨ã´ã¼ã¹ããããªãªã¼ãã¼ã¬ã¤ãPiPã®å¶éãªããç»é¢å æãªããããªãã®ã³ã³ãã³ããã¤ãã«è¦è´ã§ãã¾ãã",date:"2026å¹´6æ4æ¥",readTime:"4åã§èªãã¾ã",tag:"製å",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Windowsã§å¤§ããªåç»ãã¡ã¤ã«ãç»è³ªãè½ã¨ããã«å§ç¸®ããæ¹æ³",excerpt:"大ããªMP4ãMKVãAVIãã¡ã¤ã«ãGPUã§ãã¼ã«ã«ã«10%ã«å§ç¸®ãã¯ã©ã¦ãä¸è¦ããµãã¹ã¯ä¸è¦ãç»è³ªå£åãªãã",date:"2026å¹´6æ3æ¥",readTime:"5åã§èªãã¾ã",tag:"ãã¥ã¼ããªã¢ã«",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Redditãåç»å§ç¸®ã«é¢ããæç¨¿ãåé¤ãããã ããããã°è¨äºãæ¸ããã",excerpt:"Redditã§å½¹ç«ã¤ã³ã³ãã³ãã20åä»¥ä¸æç¨¿ãããã¨ãããããã¹ã¦åé¤ããããç§ã®èãã¨ã代ããã«å®éã«æ©è½ãããã®ã",date:"2026å¹´6æ3æ¥",readTime:"5åã§èªãã¾ã",tag:"æè¦",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"OBSé²ç»ãã©ãã«ãã¢ãããã¼ãããã«Windowsä¸ã§å§ç¸®ããæ¹æ³",excerpt:"OBSãã¡ã¤ã«ã¯10ã30GBã«ãªãã¾ããGPUã使ã£ã¦ãã¼ã«ã«ã§10%ã®ãµã¤ãºã«å§ç¸®ããæ¹æ³ â ã¯ã©ã¦ãä¸è¦ããµãã¹ã¯ä¸è¦ã",date:"2026å¹´6æ3æ¥",readTime:"5åã§èªãã¾ã",tag:"ãã¥ã¼ããªã¢ã«",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"å
¬éã§ä½ããã¨ã¯ãä¸äººã§ä½ããã¨ãæå³ããªãã",excerpt:"ã¤ã³ãã£ã¼ããããã¶ã¤ãã¼ããã¼ã«ã¦ã¼ã¶ã¼ã®ããã®ã³ãã¥ããã£ã¹ãã¼ã¹ãæ§ç¯ããçç±ã質åããå
±æããå¤ç¬ãæããªãå ´æã",date:"2026å¹´6æ3æ¥",readTime:"3åã§èªãã¾ã",tag:"ã³ãã¥ããã£",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"ã¿ã¤ãã°ã©ãã£åºç¤ï¼ãã¹ã¦ã®ãã¶ã¤ãã¼ãç¥ãã¹ã8ã¤ã®ã³ã³ã»ãã",excerpt:"ã«ã¼ãã³ã°ããã©ããã³ã°ãè¡éãã¿ã¤ãã¹ã±ã¼ã«ãã³ã³ãã©ã¹ã â è¯ããã¶ã¤ã³ã¨ç´ æ´ããããã¶ã¤ã³ãåããç®ã«è¦ããªãã«ã¼ã«ã8ã¤ã®ç¡æã¤ã³ã¿ã©ã¯ãã£ããã¢ä»ãã",date:"2026å¹´6æ1æ¥",readTime:"6åã§èªãã¾ã",tag:"ãã¶ã¤ã³ã¬ãã¹ã³",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Windowsã§GPUã使ã£ã¦åç»ãå§ç¸®ããæ¹æ³ â CPUãã5â10åé«é",excerpt:"NVIDIAãAMDãIntelã®GPUã§H.264/H.265åç»ãããéãå§ç¸®ãç¡æã¬ã¤ã + ãã®ããã«ä½ãããWindowsãã¼ã«ã",date:"2026å¹´5æ30æ¥",readTime:"5åã§èªãã¾ã",tag:"ãã¥ã¼ããªã¢ã«",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"ãã¹ã¦ã®ãã¤ã¼ããä¸åº¦ã«åé¤ããæ¹æ³ â ç¡æãAPIä¸è¦",excerpt:"X/Twitterã«ã¯ããã¹ã¦åé¤ããã¿ã³ãããã¾ãããææãã¼ã«ã¯æé¡èª²éããã®ç¡æã¹ã¯ãªãããªãæ°åã§å®äºã",date:"2026å¹´5æ30æ¥",readTime:"4åã§èªãã¾ã",tag:"ç¡æãã¼ã«",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"ãã¹ã¦ã®æ¡ä»¶ã§ããã©ã«ãã¨ãã¦ãã¤ãã£ãå¤è¨èªNext.jsã«ã¼ã(IT/EN/ES)ãè¨è¨ããçç±",excerpt:"Next.js/Astroã§ã°ãã¼ãã«SEOã«ã¼ãããããã³ã°ãããã¨ã§ãã¬ã³ããªã³ã°ã®é
å»¶ãé²ããä½éãªèªå翻訳ãã¼ã«ã§è¦ã¤ããæ¬ é¥ãæé¤ãã¾ãã",date:"2026å¹´5æ28æ¥",readTime:"8åã§èªãã¾ã",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"ç¬ç«ããè·äººã¹ã¿ã¸ãªã®ããã®ä¸»è¦ãªãã©ã³ãã£ã³ã°ãã¼ã«ã¨ãã¦ã®è¡¨ç¾çã¿ã¤ãã°ã©ãã£",excerpt:"AIã«ããç¾çæ¨æºåã«å¯¾æãã¦ãç¬ç«ã¹ã¿ã¸ãªã¯é対称ã®ãªãºã ã¨Helveticaã¹ã¿ã¤ã«ã®ãã©ã³ããçµã¿åããããã¨ã§å卿ã示ãã¾ãã",date:"2026å¹´4æ15æ¥",readTime:"6åã§èªãã¾ã",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},ko:{readMore:"ê¸°ì¬ ì½ê¸° â",posts:[{slug:"aftercast",title:"Aftercast: í¼ì ê²ì ì¤íëì¤ë¥¼ ììí´ ë¬´ë£ ì 격 ê²ìì ì¶ìíìµëë¤",excerpt:"íë ì´ ì¤ ê´ê³ ìì, ë¤í¬ í¨í´ ìì, ì ì§í ë²ì ë²í¸, ê³µê° ì²´ì¸ì§ë¡ê·¸. Aftercast를 ìê°í©ëë¤ â ê·¸ë¦¬ê³ ì¤ì ë°ë, íì°© ëí, ë¹í ìê°ì 구íí ë¬´ë£ ë¸ë¼ì°ì ì 격 ê²ì Snaiper를 íë ì´í´ë³´ì¸ì.",date:"2026ë
9ì 27ì¼",readTime:"6ë¶ ì½ê¸°",tag:"ì¤íëì¤",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"ì§ì ë°ì¹ ëë í 리 ë ê°ë¥¼ ë§ë¤ììµëë¤. ì¤ì ë¡ ì¬ì©íë ë¤ë¥¸ 모ë ê³³ì ìê°í©ëë¤.",excerpt:"runs.spaceì runs-this.today ë¤ì ì¨ì ì§ì§ ì´ì¼ê¸° â ê·¸ë¦¬ê³ íì¬ ì°ë¦¬ê° ì¤ì ë¡ ëìê°ë©° ì°ê³ ìë ë¤ë¥¸ 모ë ì¤íí¸ì
ë°ì¹ ëë í 리ì ìì§í 목ë¡.",date:"2026ë
9ì 15ì¼",readTime:"8ë¶ ì½ê¸°",tag:"ê°ì´ë",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio vs HandBrake: ì¤ì ë¡ ì´ë¤ 걸 ì¨ì¼ í ê¹?",excerpt:"ë¬´ë£ ì¤íìì¤ vs ì¼íì± ê²°ì $39 í´í·, 빽빽í ì¤ì vs 모ëí ì¸í°íì´ì¤ â 기ë¥ë³ë¡ ìì§íê² ë¹êµíê³ ê°ê°ì´ ì¤ì ë¡ ì°ìì¸ ì§ì ì ì§ì´ë´
ëë¤.",date:"2026ë
9ì 1ì¼",readTime:"11ë¶ ì½ê¸°",tag:"ë¹êµ",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"ë¤ìë íµí를 ëì¹ì§ ìëë¡ ë§ë¤ì´ì§ ìëì° ìê°ë ìì ¯",excerpt:"Time Precisionì ë¬´ë£ ìëì° ë°ì¤í¬í± ìì ¯ì
ëë¤ â 233ê° ëì, í¸ë²ë¡ ì¤ìê° ì´ íì¸, 9ê°ì§ ë§ê°, ëëê·¸ ì¤ ëë¡ ì¬ì ë ¬. ê³ì ë¶íì, 구ë
ìì.",date:"2026ë
8ì 5ì¼",readTime:"ì½ë ìê° 8ë¶",tag:"ì í",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"ìíí¸ì¨ì´ ë¼ì´ì ì¤ í¤, ì ëë¡ ì¤ëª
í©ëë¤",excerpt:'"ë¼ì´ì ì¤ í¤", "ì í í¤", "ìë¦¬ì¼ í¤" â 꽤 ë¤ë¥´ê² ìëíë ìì¤í
ì ê°ë¦¬í¤ë ë¤ ê°ì§ ì©ì´. 무ìì¸ì§, ì´ë»ê² ìëíëì§, ì¢
ë¥ë 무ìì¸ì§, ì±ì ì¶ê°íë ë°©ë²ê¹ì§.',date:"2026ë
7ì 30ì¼",readTime:"13ë¶ ì½ê¸°",tag:"ê°ì´ë",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: ì무ë ì ëë¡ ì¤ëª
í´ì£¼ì§ ìë ì°¨ì´",excerpt:"UIì UXë ê°ì ê²ì´ ìëë©°, ì´ë¥¼ í¼ëíë©´ ì¤ì ë¡ ëì´ ëë¹ë©ëë¤. 8ê°ì§ ëª
íí ë¹êµ, ì¤ì ì¬ë¡, ê·¸ë¦¬ê³ ì§ì í
ì¤í¸í´ë³¼ ì ìë ì¸í°ëí°ë¸ í´ì¦.",date:"2026ë
7ì 28ì¼",readTime:"ì½ë ìê° 9ë¶",tag:"ëìì¸ ë ì¨",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"BackDrop_를 NickLaunchesì ë±ë¡í´ë´¤ë¤ â ì¤ì ë¡ ì¼ì´ë ì¼",excerpt:"BackDrop_를 NickLaunchesì ë±ë¡í ìì§í 1ì¸ì¹ í기 â ë°±ë§í¬ì DRì´ ì¤ì ë¡ ë¬´ìì ì미íëì§, ê·¸ ë¤ì ìë ì§ì§ ë¶ì ë°ì´í°ì ì±ì¥ ë구ë¤, ê·¸ë¦¬ê³ ê·¸ë´ ê°ì¹ê° ììëì§.",date:"2026ë
7ì 23ì¼",readTime:"10ë¶ ì½ê¸°",tag:"ì견",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"ë¼ì´ë¸ ë¹ëì¤ ë°°ê²½íë©´ ì±ì ì°¾ê³ ê³ì ê°ì? ì§ì§ í¨ê³¼ ìë ë°©ë²ì ì´ê²ì
ëë¤.",excerpt:"ëë¶ë¶ì 'ë¹ëì¤ ë°°ê²½íë©´' ì±ì ì°½ì ì¬ë ìê° ê°ë ¤ì§ëë¤. BackDrop_ v1.1.2ë ì¤ì ë¡ ìì
íë ëììë ê³ì ë³´ì´ë ë¹ëì¤ ì¤ë²ë ì´ë¡ ì§ì§ 문ì 를 í´ê²°í©ëë¤.",date:"2026ë
7ì 18ì¼",readTime:"ì½ë ìê° 7ë¶",tag:"ì í",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"ë¤êµì´ ì½í
ì¸ ë ì§ì§ SEOì
ëë¤. ì íí ì´ë ê² ì§íí©ëë¤.",excerpt:"ë¤êµì´ ì½í
ì¸ ê° ì ì§ì§ ì¤ê°ë ë¦¬ì¹ ì ëµì¸ì§(ë¨ìí ê³¼ì¥ì´ ìëë¼), ê·¸ë¦¬ê³ ì¤ì ë¡ ë¹ì ì ì íì ëí ì§ì§ 기ì¬ë¥¼ 9ê° ì¸ì´ë¡ ìì±íê³ íì§ííë ë°©ë²ì ìê°í©ëë¤.",date:"2026ë
7ì 18ì¼",readTime:"ì½ë ìê° 7ë¶",tag:"SEO & ì½í
ì¸ ",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"2026ë
ì¹ì¬ì´í¸ ì ì ë¹ì©ì ì¤ì ë¡ ì¼ë§ì¼ê¹ì? ì§ì§ ê°ê²©, ì¶ì¸¡ ìì´",excerpt:"2026ë
ì¤ì ì¹ì¬ì´í¸ ê°ê²© â DIY ë¹ë, í리ëì, ìì´ì ì, ê³ ì ê° ë§ì¶¤ ì ìì ì
ì¢
ë³ë¡ ì 리íê³ , ì무ë ë§í´ì£¼ì§ ìë ì¨ê²¨ì§ ë¹ì©ê¹ì§ ê³µê°í©ëë¤.",date:"2026ë
7ì 14ì¼",readTime:"ì½ë ìê° 8ë¶",tag:"ì¹ ëìì¸",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"ë¹ì ì ì리ë 미ìë ìì¤ì
ëë¤. ì¹ì¬ì´í¸ë ê·¸ë°ê°ì?",excerpt:"ê³ ê¸ ë ì¤í ëì ì¹ì¬ì´í¸ê° ì ì¢
ì¢
ê²½íìì ê°ì¥ ì½í ë¶ë¶ì´ ëëì§, ê·¸ê²ì´ ê³ ê°ìê² ì¤ì ë¡ ì´ë¤ ë¹ì©ì ì´ëíëì§, ê·¸ë¦¬ê³ ì리 ìì¤ì 걸ë§ì ì¬ì´í¸ë ì´ë¤ 모ìµì´ì´ì¼ íëì§.",date:"2026ë
7ì 12ì¼",readTime:"ì½ë ìê° 6ë¶",tag:"ì¹ ëìì¸",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"ì¸í°ë· ìì´ ìíí¸ì¨ì´ ë¼ì´ì ì¤ë¥¼ ì¤íë¼ì¸ì¼ë¡ ê²ì¦íë ë°©ë²",excerpt:"ë구ë ìì í ì ìë ë¨ìí ë¡ì»¬ ìºì ëì Ed25519 ìëª
리ì¤ë¥¼ ì¬ì©í´ ë°ì¤í¬í± ì±ì´ ë¤í¸ìí¬ í¸ì¶ ìì´ ë¼ì´ì ì¤ë¥¼ íì¸íê² íë ë°©ë². Pythonê³¼ Node.js/Electronì© ì¤ì ì½ë í¬í¨.",date:"2026ë
7ì 9ì¼",readTime:"7ë¶ ì½ê¸°",tag:"íí 리ì¼",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"ìì²´ ë°±ìë ìì´ ë°ì¤í¬í± ì±ì ë¼ì´ì ì¤ í¤ ì¶ê°íë ë°©ë²",excerpt:"Electron, Python, .NET ë°ì¤í¬í± ì±ì 기기 ì ê¸ ë¼ì´ì ì¤ í¤, íì±í, ì²´ííì ì¶ê°íë ì¤ì© ê°ì´ë â ìì í¸ì¤í
API를 ì¬ì©íì¸ì.",date:"2026ë
7ì 9ì¼",readTime:"6ë¶ ì½ê¸°",tag:"íí 리ì¼",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"Nuitkaë¡ ë
립 ì¤íí Python ì¤í íì¼ì
1 ì»´íì¼íì¬ ê¸°ê³ ì¤ë²í¤ë ì ê±°",excerpt:"PyInstaller ê°ì ë린 ë°íì í¨í¤ì§ ìì´ Windowsìì ì´ê³ ì .exe íì¼ì ì¤íí기 ìí ìë²½í ê°ì´ë.",date:"2026ë
6ì 10ì¼",readTime:"12ë¶ ì½ê¸°",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"ì¸í°ë·ì ë³µì¬ë³¸ì ìµì¬íê³ ìë¤ â ì§ì ì±ì ëí ê°ë°ìì ì ì¸ë¬¸",excerpt:"ì¸í°ë·ì AI ìì± í´ë¡ ì¼ë¡ ëì³ëê³ ìë¤. ì§ì ì±ê³¼ ë
¸ë ¥ì´ 2026ë
ìë ì¬ì í ì¤ìí ì´ì ì ëí ê°ì¸ ì ì¸ë¬¸ â ê·¸ë¦¬ê³ ì°ë¦¬ê° Sublimeartsìì ì´ì ëí´ íë ê².",date:"2026ë
6ì 9ì¼",readTime:"5ë¶ ì½ê¸°",tag:"ê°ì¹ê´",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Windowsìì ì¼íë©´ì ëìì ë³´ë ë°©ë² â ì¤ì ë¡ ìëíë ë°©ë²",excerpt:"ëë¼ì´ë¸ì ë³´ê³ ì¶ì ëììì´ ììµëë¤. í´ì¼ í ì¼ë ììµëë¤. 기존ì 모ë ì루ì
ì íë를 ì ííëë¡ ê°ìí©ëë¤. ì´ ê°ì´ëë ë¡ì»¬ íì¼ì 모ë ì¤ì ìµì
ì ë¹êµí©ëë¤.",date:"2026ë
6ì 6ì¼",readTime:"5ë¶ ì½ê¸°",tag:"ê°ì´ë",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"모ë를 ìí ê³µì í ê°ê²©: êµ¬ë§¤ë ¥ íê°ë¥¼ ì§ì§íë ì´ì ",excerpt:"35ê° ì´ìì êµê°ìì ìíí¸ì¨ì´ë¥¼ ìëì¼ë¡ ë ì ë ´íê² ë§ë¤ììµëë¤ â ì¿ í° ìì´. ê³µì í ê°ê²©ì´ ìµë ì´ìµë³´ë¤ ì¤ìíë¤ê³ 믿ë ì´ì .",date:"2026ë
6ì 6ì¼",readTime:"4ë¶ ì½ê¸°",tag:"ê°ê²© & ê°ì¹",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"í ë²ë 본 ì ìë ëììì´ 300ìê°ì´ë ììë¤. ê·¸ëì BackDrop_ì ë§ë¤ìë¤.",excerpt:"ìì
íë©´ì ë¡ì»¬ ë¹ëì¤ë¥¼ ë³¼ ì ìë Windowsì© ê³ ì¤í¸ ë¹ëì¤ ì¤ë²ë ì´. PiP ì í ìì, íë©´ ì ë ¹ ìì. ë¹ì ì ì½í
ì¸ , ëëì´ ìì²ë©ëë¤.",date:"2026ë
6ì 4ì¼",readTime:"4ë¶ ì½ê¸°",tag:"ì í",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Windowsìì íì§ ìì¤ ìì´ ëì©ë ëìì íì¼ ìì¶íë ë°©ë²",excerpt:"ëì©ë MP4, MKV, AVI íì¼ì GPUë¡ ë¡ì»¬ìì 10%ë¡ ìì¶. í´ë¼ì°ë ìì´, 구ë
ìì´, íì§ ìì¤ ìì´.",date:"2026ë
6ì 3ì¼",readTime:"5ë¶ ì½ê¸°",tag:"íí 리ì¼",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Redditì´ ë´ ëìì ìì¶ ê²ì물ì ìì íë¤. ê·¸ëì ë¸ë¡ê·¸ í¬ì¤í¸ë¥¼ ì¼ë¤.",excerpt:"Redditì ì ì©í ì½í
ì¸ ë¥¼ 20ë² ì´ì ê³µì íë ¤ íì§ë§ 모ë ìì ëë¤. ë´ ìê°ê³¼ ì¤ì ë¡ í¨ê³¼ì ì¸ ëì.",date:"2026ë
6ì 3ì¼",readTime:"5ë¶ ì½ê¸°",tag:"ì견",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"ì´ëìë ì
ë¡ëíì§ ìê³ Windowsìì OBS ë
¹í íì¼ ìì¶íë ë°©ë²",excerpt:"OBS íì¼ì 10~30GBì ë¬í©ëë¤. GPUë¡ ë¡ì»¬ìì 10% í¬ê¸°ë¡ ì¤ì´ë ë°©ë² â í´ë¼ì°ë ìì´, 구ë
ìì´.",date:"2026ë
6ì 3ì¼",readTime:"5ë¶ ì½ê¸°",tag:"íí 리ì¼",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"ê³µê°ì ì¼ë¡ ë§ëë ê²ì´ í¼ì ë§ëë ê²ì ì미íì§ ììì¼ íë¤.",excerpt:"ì¸ë ê°ë°ì, ëìì´ë, ë구 ì¬ì©ì를 ìí 커뮤ëí° ê³µê°ì ë§ëë ì´ì . ì§ë¬¸íê³ , ê³µì íê³ , í¼ìê° ìë ê³³.",date:"2026ë
6ì 3ì¼",readTime:"3ë¶ ì½ê¸°",tag:"커뮤ëí°",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"íì´í¬ê·¸ëí¼ ê¸°ì´: 모ë ëìì´ëê° ììì¼ í 8ê°ì§ ê°ë
",excerpt:"ìê°, í¸ëí¹, íê°, íì
ì¤ì¼ì¼, ëë¹ â ì¢ì ëìì¸ê³¼ íë¥í ëìì¸ì 구ë¶íë ë³´ì´ì§ ìë ê·ì¹. 8ê°ì ë¬´ë£ ì¸í°ëí°ë¸ ë°ëª¨ í¬í¨.",date:"2026ë
6ì 1ì¼",readTime:"6ë¶ ì½ê¸°",tag:"ëìì¸ ë ì¨",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Windowsìì GPUë¡ ëìì ìì¶íë ë°©ë² â CPUë³´ë¤ 5â10ë°° ë¹ ë¦",excerpt:"NVIDIA, AMD ëë Intel GPU를 ì¬ì©íì¬ H.264/H.265 ëììì í¨ì¬ ë¹ ë¥´ê² ìì¶íì¸ì. ë¬´ë£ ê°ì´ë + ì´ë¥¼ ìí Windows ë구.",date:"2026ë
5ì 30ì¼",readTime:"5ë¶ ì½ê¸°",tag:"íí 리ì¼",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"모ë í¸ìì í ë²ì ìì íë ë°©ë² â 무ë£, API ìì´",excerpt:"X/Twitterìë 'ì ì²´ ìì ' ë²í¼ì´ ììµëë¤. ì ë£ ë구ë 매ì ìê¸ì ì²êµ¬í©ëë¤. ì´ ë¬´ë£ ì¤í¬ë¦½í¸ë ëª ë¶ ë§ì ìë£ë©ëë¤.",date:"2026ë
5ì 30ì¼",readTime:"4ë¶ ì½ê¸°",tag:"ë¬´ë£ ë구",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"모ë 커미ì
ìì 기본ì ì¼ë¡ ë¤ì´í°ë¸ ë¤êµì´ Next.js ë¼ì°í¸(IT/EN/ES)를 ì¤ê³íë ì´ì ",excerpt:"Next.js/Astroìì êµì SEO ë¼ì°í¸ë¥¼ 매ííë©´ ë ëë§ ì§ì°ì ë°©ì§íê³ ë린 ìë ë²ì기 ì¬ì© ì ë°ê²¬ëë ê²°í¨ì ì ê±°í©ëë¤.",date:"2026ë
5ì 28ì¼",readTime:"8ë¶ ì½ê¸°",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"ë
립 ì¥ì¸ ì¤íëì¤ë¥¼ ìí 주ì ë¸ëë© ë구ë¡ìì ííì íì´í¬ê·¸ëí¼",excerpt:"AI 미í íì¤íì ë§ì, ë
립 ì¤íëì¤ë ë¹ëì¹ ë¦¬ë¬ê³¼ ì¸ìì ì¸ Helvetica ì¤íì¼ ì체를 êµëë¡ ì¬ì©í´ ì¡´ì¬ê°ì ëë¬ë
ëë¤.",date:"2026ë
4ì 15ì¼",readTime:"6ë¶ ì½ê¸°",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]},ru:{readMore:"ЧиÑаÑÑ ÑÑаÑÑÑ â",posts:[{slug:"aftercast",title:"Aftercast: Я ÐапÑÑÑил Соло-СÑÑÐ´Ð¸Ñ ÐÐ³Ñ Ð¸ ÐÑпÑÑÑил ÐеÑплаÑнÑÑ Ð¡Ð½Ð°Ð¹Ð¿ÐµÑÑкÑÑ ÐгÑÑ",excerpt:"Ðикакой ÑÐµÐºÐ»Ð°Ð¼Ñ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¸Ð³ÑÑ, никакиÑ
ÑÑмнÑÑ
паÑÑеÑнов, ÑеÑÑнÑе номеÑа веÑÑий, пÑблиÑнÑй ÑпиÑок изменений. ÐнакомÑÑеÑÑ Ñ Aftercast â и игÑайÑе в Snaiper, беÑплаÑнÑÑ ÑнайпеÑÑкÑÑ Ð¸Ð³ÑÑ Ð² бÑаÑзеÑе Ñ Ð½Ð°ÑÑоÑÑим веÑÑом, падением и вÑеменем полÑÑа пÑли.",date:"27 ÑенÑÑбÑÑ 2026",readTime:"6 мин. ÑÑениÑ",tag:"СÑÑдиÑ",tagColor:"border-indigo-500/30 bg-indigo-500/5 text-indigo-400"},{slug:"startup-launch-directories-we-actually-use",title:"ÐÑ Ð¡Ð°Ð¼Ð¸ Создали Ðве ÐиÑекÑоÑии ÐапÑÑка. ÐÐ¾Ñ Ðаждой ÐÑÑгой, ÐоÑоÑой ÐÑ Ð ÐµÐ°Ð»Ñно ÐолÑзÑемÑÑ.",excerpt:"ÐаÑÑоÑÑÐ°Ñ Ð¸ÑÑоÑÐ¸Ñ Ð·Ð° runs.space и runs-this.today â плÑÑ ÑеÑÑнÑй ÑпиÑок каждой дÑÑгой диÑекÑоÑии запÑÑка ÑÑаÑÑапов, коÑоÑÐ°Ñ ÑейÑÐ°Ñ Ð² наÑей ÑобÑÑвенной ÑоÑаÑии.",date:"15 ÑенÑÑбÑÑ 2026",readTime:"8 мин. ÑÑениÑ",tag:"Ðайд",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reelnox-vs-handbrake",title:"ReelNox Studio пÑоÑив HandBrake: ЧÑо ÐÑбÑаÑÑ Ðа Самом Ðеле?",excerpt:"ЧеÑÑное ÑÑавнение ÑÑнкÑÐ¸Ñ Ð·Ð° ÑÑнкÑией â беÑплаÑнÑй опенÑоÑÑ Ð¿ÑоÑив Ñазового набоÑа инÑÑÑÑменÑов за $39, пеÑегÑÑженнÑе наÑÑÑойки пÑоÑив ÑовÑеменного инÑеÑÑейÑа, и где каждÑй из ниÑ
дейÑÑвиÑелÑно побеждаеÑ.",date:"1 ÑенÑÑбÑÑ 2026",readTime:"11 мин. ÑÑениÑ",tag:"СÑавнение",tagColor:"border-teal-500/30 bg-teal-500/5 text-teal-400"},{slug:"timezone-widget-windows",title:"ÐÐ¸Ð´Ð¶ÐµÑ Ð§Ð°ÑовÑÑ
ÐоÑÑов Ð´Ð»Ñ Windows, СозданнÑй, ЧÑÐ¾Ð±Ñ ÐÑ ÐолÑÑе Ðикогда Ðе ÐÑопÑÑÑили Ðвонок",excerpt:"Time Precision â беÑплаÑнÑй Ð²Ð¸Ð´Ð¶ÐµÑ Ð´Ð»Ñ Windows: 233 гоÑода, наведение кÑÑÑоÑа Ð´Ð»Ñ ÑекÑнд в ÑеалÑном вÑемени, 9 оÑоÑмлений, пеÑеÑаÑкивание Ð´Ð»Ñ ÑоÑÑиÑовки. Ðез аккаÑнÑа, без подпиÑки.",date:"5 авгÑÑÑа 2026",readTime:"8 мин ÑÑениÑ",tag:"ÐÑодÑкÑ",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"}
1,{slug:"software-license-key-guide",title:"ÐиÑензионнÑе ÐлÑÑи ÐÐ â РазбиÑаем Ðо-ÐаÑÑоÑÑемÑ",excerpt:"«ÐиÑензионнÑй клÑÑ», «product key», «ÑеÑийнÑй номеÑ» â ÑеÑÑÑе ÑеÑмина Ð´Ð»Ñ Ð´Ð¾Ð²Ð¾Ð»Ñно ÑазнÑÑ
ÑиÑÑем. ЧÑо ÑÑо, как ÑабоÑаеÑ, какие ÑÐ¸Ð¿Ñ Ð±ÑваÑÑ, и как добавиÑÑ ÐµÐ³Ð¾ в пÑиложение.",date:"30 иÑÐ»Ñ 2026",readTime:"13 мин. ÑÑениÑ",tag:"Ðид",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"ui-vs-ux-difference",title:"UI vs UX: РазниÑа, ÐоÑоÑÑÑ ÐикÑо Толком Ðе ÐбÑÑÑнÑеÑ",excerpt:"UI и UX â ÑÑо не одно и Ñо же, и пÑÑаниÑа Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ ÑÑÐ¾Ð¸Ñ ÑеалÑнÑÑ
денег. 8 ÑÑÑкиÑ
ÑÑавнений, ÑеалÑнÑе пÑимеÑÑ Ð¸ инÑеÑакÑивнÑй ÑеÑÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ ÑебÑ.",date:"28 иÑÐ»Ñ 2026",readTime:"9 мин. ÑÑениÑ",tag:"УÑок дизайна",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"nicklaunches-review",title:"Я ÐÑпÑавил BackDrop_ на NickLaunches â ÐÐ¾Ñ Ð§Ñо ÐÑоизоÑло Ðа Самом Ðеле",excerpt:"ЧеÑÑнÑй ÑаÑÑказ Ð¾Ñ Ð¿ÐµÑвого лиÑа о ÑазмеÑении BackDrop_ на NickLaunches â ÑÑо на Ñамом деле знаÑÐ°Ñ backlink и DR, ÑеалÑÐ½Ð°Ñ Ð°Ð½Ð°Ð»Ð¸Ñика и инÑÑÑÑменÑÑ ÑоÑÑа за кÑлиÑами, и ÑÑоило ли оно Ñого.",date:"23 иÑÐ»Ñ 2026",readTime:"10 мин. ÑÑениÑ",tag:"Ðнение",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"video-wallpaper-app-windows",title:"ÐÑеÑе ÐÑиложение Ð´Ð»Ñ ÐивÑÑ
Ðидео-Ðбоев? ÐÐ¾Ñ Ð§Ñо РеалÑно РабоÑаеÑ.",excerpt:"ÐолÑÑинÑÑво пÑиложений Ð´Ð»Ñ Â«Ð²Ð¸Ð´ÐµÐ¾-обоев» пеÑекÑÑваÑÑÑÑ Ð² ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ, когда Ð²Ñ Ð¾ÑкÑÑваеÑе окно. BackDrop_ v1.1.2 ÑеÑÐ°ÐµÑ Ð½Ð°ÑÑоÑÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ â видео-овеÑлей, коÑоÑÑй оÑÑаÑÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñм, пока Ð²Ñ ÑеалÑно ÑабоÑаеÑе.",date:"18 иÑÐ»Ñ 2026",readTime:"7 мин ÑÑениÑ",tag:"ÐÑодÑкÑ",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"multilingual-content-seo-organic-reach",title:"ÐногоÑзÑÑнÑй ÐонÑÐµÐ½Ñ â ÐÑо ÐаÑÑоÑÑее SEO. ÐÐ¾Ñ Ðак Ðменно ÐÑ ÐÑо Ðелаем.",excerpt:"ÐоÑÐµÐ¼Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑзÑÑнÑй конÑÐµÐ½Ñ â ÑÑо ÑеалÑÐ½Ð°Ñ ÑÑÑаÑÐµÐ³Ð¸Ñ Ð¾ÑганиÑеÑкого оÑ
ваÑа (а не пÑоÑÑо Ñ
айп), и как Ð¼Ñ Ð¿Ð¸Ñем и локализÑем наÑÑоÑÑÑÑ ÑÑаÑÑÑ Ð¾ ваÑем пÑодÑкÑе на 9 ÑзÑков.",date:"18 иÑÐ»Ñ 2026",readTime:"7 мин ÑÑениÑ",tag:"SEO и ÐонÑенÑ",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"how-much-does-a-website-cost",title:"СколÑко на Ñамом деле ÑÑÐ¾Ð¸Ñ ÑÐ°Ð¹Ñ Ð² 2026 годÑ? РеалÑнÑе ÑенÑ, без гаданий",excerpt:"РеалÑнÑе ÑÐµÐ½Ñ Ð½Ð° ÑайÑÑ Ð² 2026 Ð³Ð¾Ð´Ñ â DIY-конÑÑÑÑкÑоÑÑ, ÑÑиланÑеÑÑ, агенÑÑÑва и индивидÑалÑÐ½Ð°Ñ ÑазÑабоÑка по ÑикÑиÑованной Ñене, Ñ Ñазбивкой по Ñипам бизнеÑа и ÑкÑÑÑÑми ÑаÑÑ
одами, о коÑоÑÑÑ
никÑо не ÑаÑÑказÑваеÑ.",date:"14 иÑÐ»Ñ 2026",readTime:"8 мин ÑÑениÑ",tag:"Ðеб-дизайн",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"web-design-fine-dining-restaurants",title:"ÐаÑа кÑÑ
Ð½Ñ Ð½Ð° ÑÑовне ÐиÑлен. Ð Ð²Ð°Ñ ÑайÑ?",excerpt:"ÐоÑÐµÐ¼Ñ ÑÐ°Ð¹Ñ ÑеÑÑоÑана вÑÑокой кÑÑ
ни ÑаÑÑо оказÑваеÑÑÑ ÑамÑм ÑлабÑм звеном во впеÑаÑлении, во ÑÑо ÑÑо ÑеалÑно обÑ
одиÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам, и как вÑглÑÐ´Ð¸Ñ ÑайÑ, доÑÑойнÑй ÑÑÐ¾Ð²Ð½Ñ Ð²Ð°Ñей кÑÑ
ни.",date:"12 иÑÐ»Ñ 2026",readTime:"6 мин ÑÑениÑ",tag:"Ðеб-дизайн",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"offline-license-verification",title:"Ðак ÐÑовеÑиÑÑ ÐиÑÐµÐ½Ð·Ð¸Ñ ÐÑогÑÐ°Ð¼Ð¼Ñ ÐÑлайн (Ðез ÐнÑеÑнеÑа)",excerpt:"Ðак позволиÑÑ Ð½Ð°ÑÑолÑÐ½Ð¾Ð¼Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑовеÑÑÑÑ Ð»Ð¸ÑÐµÐ½Ð·Ð¸Ñ Ñ Ð½ÑлÑм ÑеÑевÑÑ
запÑоÑов â Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑаннÑÑ
Ed25519 аÑенднÑÑ
Ñокенов вмеÑÑо пÑоÑÑого локалÑного кÑÑа, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑедакÑиÑоваÑÑ ÐºÑо Ñгодно. РеалÑнÑй код Ð´Ð»Ñ Python и Node.js/Electron.",date:"9 иÑÐ»Ñ 2026",readTime:"7 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"license-keys-desktop-app",title:"Ðак ÐобавиÑÑ ÐиÑензионнÑе ÐлÑÑи в ÐаÑÑолÑное ÐÑиложение Ðез Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐÑкенда",excerpt:"ÐÑакÑиÑеÑкое ÑÑководÑÑво по Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑивÑзаннÑÑ
к ÑÑÑÑойÑÑÐ²Ñ Ð»Ð¸ÑензионнÑÑ
клÑÑей, акÑиваÑии и пÑобнÑÑ
веÑÑий в пÑиложение на Electron, Python или .NET â Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑим Ñ
оÑÑинговÑм API.",date:"9 иÑÐ»Ñ 2026",readTime:"6 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"nuitka-python-standalone",title:"ÐомпилÑÑÐ¸Ñ Ð°Ð²ÑономнÑÑ
Python-иÑполнÑемÑÑ
Ñайлов Ñ Nuitka Ð´Ð»Ñ ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½Ð°ÐºÐ»Ð°Ð´Ð½ÑÑ
ÑаÑÑ
одов",excerpt:"ÐÑÑеÑпÑваÑÑее ÑÑководÑÑво по запÑÑÐºÑ ÑвеÑÑ
бÑÑÑÑÑÑ
.exe-Ñайлов в Windows без медленнÑÑ
пакеÑов вÑемени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ñоде PyInstaller.",date:"10 иÑÐ½Ñ 2026",readTime:"12 мин. ÑÑениÑ",tag:"Windows Dev",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"authenticity-in-tech",title:"ÐнÑеÑÐ½ÐµÑ ÑÐ¾Ð½ÐµÑ Ð² копиÑÑ
â ÐаниÑеÑÑ ÑазÑабоÑÑика об аÑÑенÑиÑноÑÑи",excerpt:"ÐнÑеÑÐ½ÐµÑ ÑÐ¾Ð½ÐµÑ Ð² клонаÑ
, ÑгенеÑиÑованнÑÑ
ÐÐ. ÐиÑнÑй маниÑеÑÑ Ð¾ Ñом, поÑÐµÐ¼Ñ Ð°ÑÑенÑиÑноÑÑÑ Ð¸ ÑÑÐ¸Ð»Ð¸Ñ Ð²ÑÑ ÐµÑÑ Ð²Ð°Ð¶Ð½Ñ Ð² 2026 Ð³Ð¾Ð´Ñ â и ÑÑо Ð¼Ñ Ð´ÐµÐ»Ð°ÐµÐ¼ Ñ ÑÑим в Sublimearts.",date:"9 иÑÐ½Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"ЦенноÑÑи",tagColor:"border-amber-500/30 bg-amber-500/5 text-amber-400"},{slug:"watch-video-while-working-windows",title:"Ðак ÑмоÑÑеÑÑ Ð²Ð¸Ð´ÐµÐ¾ во вÑÐµÐ¼Ñ ÑабоÑÑ Ð½Ð° Windows â ÐеÑод, коÑоÑÑй дейÑÑвиÑелÑно ÑабоÑаеÑ",excerpt:"У ÑÐµÐ±Ñ ÐµÑÑÑ Ð²Ð¸Ð´ÐµÐ¾ на диÑке, коÑоÑÑе ÑÑ Ñ
оÑеÑÑ Ð¿Ð¾ÑмоÑÑеÑÑ. ÐÑÑÑ ÑабоÑа, коÑоÑÑÑ Ð½Ñжно ÑделаÑÑ. Ðаждое ÑÑÑеÑÑвÑÑÑее ÑеÑение вÑнÑÐ¶Ð´Ð°ÐµÑ Ð²ÑбиÑаÑÑ Ð¾Ð´Ð½Ð¾ из двÑÑ
. ÐÑÐ¾Ñ Ð³Ð¸Ð´ ÑÑÐ°Ð²Ð½Ð¸Ð²Ð°ÐµÑ Ð²Ñе ÑеалÑнÑе ваÑианÑÑ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ
Ñайлов.",date:"6 иÑÐ½Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"purchasing-power-parity",title:"СпÑаведливÑе ÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÑеÑ
: поÑÐµÐ¼Ñ Ð¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаем паÑиÑÐµÑ Ð¿Ð¾ÐºÑпаÑелÑной ÑпоÑобноÑÑи",excerpt:"ÐÑ ÑолÑко ÑÑо Ñделали Ð½Ð°Ñ ÑоÑÑ Ð´ÐµÑевле Ð´Ð»Ñ 35+ ÑÑÑан â авÑомаÑиÑеÑки, без кÑпона. ÐоÑÐµÐ¼Ñ Ð¼Ñ ÑÑиÑаем, ÑÑо ÑпÑаведливÑе ÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½ÐµÐµ макÑималÑной пÑибÑли.",date:"6 иÑÐ½Ñ 2026",readTime:"4 мин. ÑÑениÑ",tag:"Ð¦ÐµÐ½Ñ & ЦенноÑÑи",tagColor:"border-orange-500/30 bg-
1orange-500/5 text-orange-400"},{slug:"backdrop",title:"У Ð¼ÐµÐ½Ñ Ð±Ñло 300 ÑаÑов видео, коÑоÑÑе Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не ÑмоÑÑел. ÐоÑÑÐ¾Ð¼Ñ Ñ Ñоздал BackDrop_.",excerpt:"ÐÑизÑаÑнÑй видеоовеÑлей Ð´Ð»Ñ Windows, позволÑÑÑий ÑмоÑÑеÑÑ Ð»Ñбое локалÑное видео во вÑÐµÐ¼Ñ ÑабоÑÑ. Ðез огÑаниÑений PiP, без заÑ
ваÑа ÑкÑана. Твой конÑенÑ, Ð½Ð°ÐºÐ¾Ð½ÐµÑ Ð¿ÑоÑмоÑÑен.",date:"4 иÑÐ½Ñ 2026",readTime:"4 мин. ÑÑениÑ",tag:"ÐÑодÑкÑ",tagColor:"border-violet-500/30 bg-violet-500/5 text-violet-400"},{slug:"compress-large-video-files-windows",title:"Ðак ÑжаÑÑ Ð±Ð¾Ð»ÑÑие видеоÑÐ°Ð¹Ð»Ñ Ð² Windows без поÑеÑи каÑеÑÑва",excerpt:"ÐÑбой болÑÑой Ñайл MP4, MKV или AVI â ÑожмиÑе до 10% локалÑно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ GPU. Ðез облака, без подпиÑки, без поÑеÑи каÑеÑÑва.",date:"3 иÑÐ½Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"reddit-removed-my-post",title:"Reddit Ñдалил мой поÑÑ Ð¾ ÑжаÑии видео. ÐоÑÑÐ¾Ð¼Ñ Ñ Ð½Ð°Ð¿Ð¸Ñал блог-поÑÑ.",excerpt:"ÐоÑле 20+ попÑÑок поделиÑÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñм конÑенÑом на Reddit каждÑй поÑÑ Ð±Ñл ÑдалÑн. Ðои мÑÑли и ÑÑо ÑеалÑно ÑабоÑÐ°ÐµÑ Ð²Ð¼ÐµÑÑо ÑÑого.",date:"3 иÑÐ½Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"Ðнение",tagColor:"border-red-500/30 bg-red-500/5 text-red-400"},{slug:"compress-obs-recordings",title:"Ðак ÑжаÑÑ Ð·Ð°Ð¿Ð¸Ñи OBS на Windows без загÑÑзки кÑда-либо",excerpt:"Ð¤Ð°Ð¹Ð»Ñ OBS доÑÑигаÑÑ 10â30 ÐÐ. Ðак ÑжаÑÑ Ð¸Ñ
до 10% локалÑно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ GPU â без облака, без подпиÑки.",date:"3 иÑÐ½Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"community",title:"СÑÑоиÑÑ Ð¿ÑблиÑно не должно ознаÑаÑÑ ÑÑÑоиÑÑ Ð² одиноÑеÑÑве.",excerpt:"ÐоÑÐµÐ¼Ñ Ð¼Ñ ÑÑÑоим ÑообÑеÑÑво Ð´Ð»Ñ Ð¸Ð½Ð´Ð¸-ÑазÑабоÑÑиков, дизайнеÑов и полÑзоваÑелей наÑиÑ
инÑÑÑÑменÑов. ÐеÑÑо Ð´Ð»Ñ Ð²Ð¾Ð¿ÑоÑов, обмена и не бÑÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ñ.",date:"3 иÑÐ½Ñ 2026",readTime:"3 мин. ÑÑениÑ",tag:"СообÑеÑÑво",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"typography-fundamentals",title:"ÐÑÐ½Ð¾Ð²Ñ ÑипогÑаÑики: 8 конÑепÑий, коÑоÑÑе должен знаÑÑ ÐºÐ°Ð¶Ð´Ñй дизайнеÑ",excerpt:"ÐеÑнинг, ÑÑекинг, инÑеÑлинÑÑж, ÑипогÑаÑÑÐºÐ°Ñ Ñкала, конÑÑаÑÑ â невидимÑе пÑавила Ñ
оÑоÑего дизайна. 8 беÑплаÑнÑÑ
инÑеÑакÑивнÑÑ
демо.",date:"1 иÑÐ½Ñ 2026",readTime:"6 мин. ÑÑениÑ",tag:"УÑок дизайна",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"},{slug:"compress-video-gpu-windows",title:"Ðак ÑжимаÑÑ Ð²Ð¸Ð´ÐµÐ¾ Ñ GPU в Windows â Ð 5â10 Ñаз бÑÑÑÑее CPU",excerpt:"ÐÑполÑзÑйÑе GPU NVIDIA, AMD или Intel Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ бÑÑÑÑого ÑжаÑÐ¸Ñ H.264/H.265. ÐеÑплаÑное ÑÑководÑÑво + инÑÑÑÑÐ¼ÐµÐ½Ñ Windows Ð´Ð»Ñ ÑÑого.",date:"30 Ð¼Ð°Ñ 2026",readTime:"5 мин. ÑÑениÑ",tag:"Ð ÑководÑÑво",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"delete-all-tweets",title:"Ðак ÑдалиÑÑ Ð²Ñе ÑвиÑÑ ÑÑÐ°Ð·Ñ â ÐеÑплаÑно, без API",excerpt:"Ð X/Twitter Ð½ÐµÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ «ÑдалиÑÑ Ð²ÑÑ». ÐлаÑнÑе инÑÑÑÑменÑÑ Ð±ÐµÑÑÑ Ð¿Ð¾Ð¼ÐµÑÑÑно. ÐÑÐ¾Ñ Ð±ÐµÑплаÑнÑй ÑкÑÐ¸Ð¿Ñ ÑпÑавиÑÑÑ Ð·Ð° неÑколÑко минÑÑ.",date:"30 Ð¼Ð°Ñ 2026",readTime:"4 мин. ÑÑениÑ",tag:"ÐеÑплаÑнÑй инÑÑÑÑменÑ",tagColor:"border-emerald-500/30 bg-emerald-500/5 text-emerald-400"},{slug:"nextjs-multilingual-seo",title:"ÐоÑÐµÐ¼Ñ Ñ ÑазÑабаÑÑÐ²Ð°Ñ Ð½Ð°ÑивнÑе многоÑзÑÑнÑе Next.js-маÑÑÑÑÑÑ (IT/EN/ES) по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ заказа",excerpt:"Ðаппинг междÑнаÑоднÑÑ
SEO-маÑÑÑÑÑов в Next.js/Astro пÑедоÑвÑаÑÐ°ÐµÑ Ð·Ð°Ð´ÐµÑжки ÑендеÑинга и ÑÑÑÑанÑÐµÑ Ð½ÐµÐ´Ð¾ÑÑаÑки, Ñ
аÑакÑеÑнÑе Ð´Ð»Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÑÑ
авÑопеÑеводÑиÐ
1ºÐ¾Ð².",date:"28 Ð¼Ð°Ñ 2026",readTime:"8 мин. ÑÑениÑ",tag:"Web Design",tagColor:"border-blue-500/30 bg-blue-500/5 text-blue-400"},{slug:"expressive-typography-branding",title:"ÐÑÑазиÑелÑÐ½Ð°Ñ ÑипогÑаÑика как оÑновной инÑÑÑÑÐ¼ÐµÐ½Ñ Ð±Ñендинга Ð´Ð»Ñ Ð½ÐµÐ·Ð°Ð²Ð¸ÑимÑÑ
ÑÑÑдий",excerpt:"ÐÑоÑив ÑÑÑеÑиÑеÑкой ноÑмализаÑии ÐРнезавиÑÐ¸Ð¼Ð°Ñ ÑÑÑÐ´Ð¸Ñ Ð·Ð°ÑвлÑÐµÑ Ð¾ Ñебе, ÑеÑедÑÑ Ð°ÑиммеÑÑиÑнÑе ÑиÑÐ¼Ñ Ð¸ бÑоÑкие ÑÑиÑÑÑ Ð² ÑÑиле Helvetica.",date:"15 апÑÐµÐ»Ñ 2026",readTime:"6 мин. ÑÑениÑ",tag:"Design Theory",tagColor:"border-purple-500/30 bg-purple-500/5 text-purple-400"}]}},l={it:{badge:"DAL BLOG",title:"Ultimi Articoli",subtitle:"Approfondimenti tecnici, storie di prodotto e guide pratiche â aggiornato ad ogni pubblicazione.",viewAll:"Vedi tutti gli articoli",readPost:"Leggi"},en:{badge:"FROM THE BLOG",title:"Latest Articles",subtitle:"Technical deep dives, product stories and practical guides â updated with every publish.",viewAll:"View all articles",readPost:"Read"},es:{badge:"DEL BLOG",title:"Ãltimos ArtÃculos",subtitle:"Análisis técnicos, historias de producto y guÃas prácticas â actualizado con cada publicación.",viewAll:"Ver todos los artÃculos",readPost:"Leer"},de:{badge:"AUS DEM BLOG",title:"Neueste Artikel",subtitle:"Technische Tiefgänge, Produktgeschichten und praktische Anleitungen â aktualisiert bei jeder Veröffentlichung.",viewAll:"Alle Artikel ansehen",readPost:"Lesen"},fr:{badge:"DEPUIS LE BLOG",title:"Derniers Articles",subtitle:"Analyses techniques, histoires de produits et guides pratiques â mis à jour à chaque publication.",viewAll:"Voir tous les articles",readPost:"Lire"},zh:{badge:"æ¥èªå客",title:"ææ°æç« ",subtitle:"ææ¯æ·±åº¦è§£æã产åæ
äºä¸å®ç¨æåââæ¯æ¬¡åå¸å³æ´æ°ã",viewAll:"æ¥çæææç« ",readPost:"é
读"},ja:{badge:"ããã°ãã",title:"ææ°è¨äº",subtitle:"æè¡çãªæ·±æãããããã¯ãã¹ãã¼ãªã¼ãå®è·µã¬ã¤ãââå
¬éã®åº¦ã«æ´æ°ã",viewAll:"ãã¹ã¦ã®è¨äºãè¦ã",readPost:"èªã"},ko:{badge:"ë¸ë¡ê·¸ìì",title:"ìµì ê¸",subtitle:"기ì ì¬ì¸µ ë¶ì, ì í ì´ì¼ê¸°, ì¤ì© ê°ì´ë â ê²ìí ëë§ë¤ ì
ë°ì´í¸ë©ëë¤.",viewAll:"모ë ê¸ ë³´ê¸°",readPost:"ì½ê¸°"},ru:{badge:"ÐÐ ÐÐÐÐÐ",title:"ÐоÑледние СÑаÑÑи",subtitle:"ТеÑ
ниÑеÑкие ÑазбоÑÑ, иÑÑоÑии пÑодÑкÑов и пÑакÑиÑеÑкие ÑÑководÑÑва â обновлÑеÑÑÑ Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ пÑбликаÑией.",viewAll:"СмоÑÑеÑÑ Ð²Ñе ÑÑаÑÑи",readPost:"ЧиÑаÑÑ"}};e.s(["default",0,function({locale:e}){let u=l[e]??l.en,d=(s[e]??s.en).posts.slice(0,3),[c,g]=(0,r.useState)({});return(0,r.useEffect)(()=>{let e=d.map(e=>e.slug);o.supabase.from("blog_likes").select("slug").in("slug",e).then(({data:e})=>{if(!e)return;let t={};for(let r of e)t[r.slug]=(t[r.slug]??0)+1;g(t)})},[e]),(0,t.jsx)("section",{className:"py-20 px-4 sm:px-6 lg:px-8 bg-[#0a0a0a] border-b border-zinc-900",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-4 mb-10",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-xs font-mono tracking-widest text-[#f97316] uppercase bg-orange-500/10 px-3 py-1 rounded-full",children:u.badge}),(0,t.jsx)("h2",{className:"text-3xl md:text-4xl font-display font-medium tracking-tight text-white mt-4",children:u.title}),(0,t.jsx)("p",{className:"text-zinc-400 mt-2 text-sm max-w-xl",children:u.subtitle})]}),(0,t.jsxs)(i.Link,{href:"/blog",className:"shrink-0 inline-flex items-center gap-1.5 text-sm font-mono text-zinc-400 hover:text-white transition-colors",children:[u.viewAll," ",(0,t.jsx)(n.ArrowRight,{className:"w-3.5 h-3.5","aria-hidden":"true"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:d.map(e=>(0,t.jsx)(i.Link,{href:`/blog/${e.slug}`,className:"group",children:(0,t.jsxs)("article",{className:"h-full bg-zinc-900/40 border border-[#1e2020] hover:border-zinc-700 p-6 rounded-2xl transition-all flex flex-col",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 font-mono text-[10px] text-zinc-500 mb-3",children:[(0,t.jsx)("span",{className:"text-[#f97316] font-bold uppercase tracking-wide",children:e.tag}),(0,t.jsx)("span",{children:"â¢"}),(0,t.jsx)("span",{children:e.readTime}),!!c[e.slug]&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"â¢"}),(0,t.jsxs)("span",{className:"flex items-center gap-1 text-pink-400/70",children:[(0,t.jsx)(a.Heart,{className:"w-3 h-3 fill-current","aria-hidden":"true"}),c[e.slug]]})]})]}),(0,t.jsx)("h3",{className:"text-lg font-display font-semibold text-white group-hover:text-[#f97316] transition-colors leading-snug",children:e.title}),(0,t.jsx)("p",{className:"text-zinc-400 text-xs leading-relaxed mt-2 flex-1",children:e.excerpt}),(0,t.jsxs)("span",{className:"mt-4 text-xs font-mono text-zinc-500 group-hover:text-white group-hover:translate-x-1 transition-all inline-flex items-center gap-1.5",children:[u.readPost," ",(0,t.jsx)(n.ArrowRight,{className:"w-3 h-3","aria-hidden":"true"})]})]})},e.slug))})]})})}],9720)},62369,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let i="âââââââ â¡âªâ!@#$%?<>âââ³â±â²ââââ",a="SUBLIMEARTS.IO";function n(e,t){return e.split("").map((e,r)=>"."===e||"-"===e||" "===e||r<t?e:i[Math.floor(Math.random()*i.length)]).join("")}e.s(["default",0,function(){let[e,i]=(0,r.useState)("check"),[o,s]=(0,r.useState)(a),l=(0,r.useRef)(0),u=(0,r.useRef)(0);if((0,r.useEffect)(()=>sessionStorage.getItem("sa-intro-seen")?void i("done"):(sessionStorage.setItem("sa-intro-seen","1"),document.body.style.overflow="hidden",s(n(a,0)),i("glitch"),u.current=performance.now(),l.current=requestAnimationFrame(function e(){let t=performance.now()-u.current;if(t<600)s(n(a,0)),l.current=requestAnimationFrame(e);else if(t<1300){let r=Math.floor((t-600)/700*a.length);s(n(a,r)),l.current=requestAnimationFrame(e)}else s(a),i("hold"),document.body.style.overflow="",setTimeout(()=>{i("fade"),setTimeout(()=>i("done"),550)},250)}),()=>{cancelAnimationFrame(l.current),document.body.style.overflow=""}),[]),"done"===e)return null;let d="glitch"===e;return(0,t.jsxs)("div",{"aria-hidden":"true",className:"fixed inset-0 z-[99999] bg-[#0a0a0a] flex flex-col items-center justify-center select-none pointer-events-none",style:{opacity:+("check"!==e&&"fade"!==e),transition:"fade"===e?"opacity 0.55s cubic-bezier(0.4, 0, 1, 1)":"none"},children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundImage:"repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,0.025) 2px, rgba(255,255,255,0.025) 4px)",opacity:+!!d,transition:"opacity 0.3s ease"}}),(0,t.jsx)("img",{src:"/sublimearts-logo.png",alt:"",width:80,height:80,className:`object-contain mb-8 ${d?"glitch-img-intro":""}`,style:{transition:d?"none":"filter 0.3s ease, transform 0.3s ease"}}),(0,t.jsxs)("div",{className:"relative font-mono font-bold tracking-[0.18em] text-white",style:{fontSize:"clamp(2rem, 8vw, 6rem)"}
1,children:[d&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 text-orange-500/90 intro-ghost-orange whitespace-nowrap",children:o}),d&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 text-fuchsia-500/90 intro-ghost-fuchsia whitespace-nowrap",children:o}),(0,t.jsx)("span",{className:"relative z-10 whitespace-nowrap",children:o})]}),(0,t.jsx)("p",{className:"absolute bottom-10 font-mono text-[10px] tracking-widest text-zinc-600 uppercase",style:{opacity:+!d,transition:"opacity 0.4s ease"},children:"Sublimearts Lab · Worldwide"})]})}])}]);
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.