/*! LAINJ Freelance Portfolio by Lainj Solutions | GPL-2.0-or-later | unminified source: style.css */
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--ff-header-real,var(--ff-header-h)) + 16px)}body{margin:0;background:var(--ff-bg);color:var(--ff-text);font-family:var(--ff-font-body);font-size:var(--ff-fs-base);line-height:var(--ff-lh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background-color 0.3s ease,color 0.3s ease}img,svg,video,iframe{max-width:100%}img{height:auto;display:block}figure{margin:0}h1,h2,h3,h4,h5,h6{margin:0 0 0.5em;color:var(--ff-heading);font-family:var(--ff-font-heading);font-weight:var(--ff-hw);letter-spacing:var(--ff-hls);line-height:1.15;text-wrap:balance}h1{font-size:clamp(2.1rem,4.2vw,3.3rem)}h2{font-size:clamp(1.75rem,3.2vw,2.55rem)}h3{font-size:clamp(1.2rem,1.6vw,1.4rem)}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:0.875rem;text-transform:uppercase;letter-spacing:0.08em}p{margin:0 0 1.1em}a{color:var(--ff-accent);text-decoration-thickness:1px;text-underline-offset:3px;transition:color 0.2s ease}a:hover{color:var(--ff-heading)}:focus-visible{outline:2px solid var(--ff-accent);outline-offset:3px;border-radius:4px}::selection{background:rgba(var(--ff-accent-rgb),0.2);color:var(--ff-heading)}hr{border:0;border-top:1px solid var(--ff-border);margin:2em 0}small{font-size:0.85em}input,textarea,select,button{font:inherit;color:inherit}input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="number"],input[type="tel"],textarea,select{width:100%;padding:0.75em 1em;background:var(--ff-bg);border:1px solid var(--ff-border);border-radius:calc(var(--ff-radius) * 0.6);transition:border-color 0.2s ease,box-shadow 0.2s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ff-accent);box-shadow:0 0 0 4px rgba(var(--ff-accent-rgb),0.15)}label{display:inline-block;margin-bottom:0.35em;color:var(--ff-heading);font-weight:600;font-size:0.95em}table{width:100%;border-collapse:collapse;margin:0 0 1.5em}th,td{padding:0.65em 0.8em;border-bottom:1px solid var(--ff-border);text-align:left}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important}.screen-reader-text:focus{background:var(--ff-bg);border-radius:6px;box-shadow:0 4px 20px rgba(0,0,0,0.2);clip:auto !important;clip-path:none;color:var(--ff-heading);display:block;font-weight:600;height:auto;left:12px;padding:14px 22px;text-decoration:none;top:12px;width:auto;z-index:100000}.alignleft{float:left;margin:0.3em 1.5em 1em 0}.alignright{float:right;margin:0.3em 0 1em 1.5em}.aligncenter{display:block;margin-left:auto;margin-right:auto}.wp-caption{max-width:100%;margin-bottom:1.5em}.wp-caption-text,.gallery-caption,figcaption{font-size:0.875em;color:var(--ff-text);opacity:0.85;margin-top:0.6em;text-align:center}.sticky .ff-post-card__title::before{content:"\2605 ";color:var(--ff-accent)}.bypostauthor>article .fn::after{content:" \2713";color:var(--ff-accent)}.ff-container{width:min(var(--ff-container),calc(100% - 2 * clamp(16px,4vw,32px)));margin-inline:auto}.ff-container--full{width:calc(100% - 2 * clamp(16px,4vw,40px))}.ff-narrow{max-width:800px}.ff-section{position:relative;padding-block:var(--ff-section-y)}.ff-section--tight{padding-block:calc(var(--ff-section-y) * 0.6)}.ff-section--alt{background:var(--ff-surface)}.ff-section--content{padding-block:clamp(40px,6vw,72px) var(--ff-section-y)}.ff-section-head{max-width:680px;margin:0 auto clamp(36px,5vw,56px)}.ff-section-head--center{text-align:center}.ff-section-head--left{margin-left:0}.ff-eyebrow{display:inline-flex;align-items:center;gap:0.5em;margin:0 0 1em;padding:0.35em 0.9em;border-radius:999px;background:rgba(var(--ff-accent-rgb),0.1);color:var(--ff-accent);font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}.ff-eyebrow a{color:inherit;text-decoration:none}.ff-section-title{margin-bottom:0.4em}.ff-section-title em,.ff-hero__title em,.ff-cta__title em{font-style:normal;background:linear-gradient(100deg,var(--ff-accent),var(--ff-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ff-section-intro{font-size:1.1em;margin:0}.ff-section-foot{margin-top:clamp(32px,4vw,48px);text-align:center}.ff-notice{padding:1em 1.25em;border:1px dashed var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-surface);text-align:center}.ff-cols-2,.ff-cols-3,.ff-cols-4{display:grid;gap:clamp(18px,2.4vw,30px);grid-template-columns:1fr}@media (min-width:640px){.ff-cols-2,.ff-cols-3,.ff-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1000px){.ff-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ff-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.ff-icon{width:1.15em;height:1.15em;flex-shrink:0;vertical-align:middle}.ff-btn,.wp-block-button__link,.wp-element-button,button[type="submit"],input[type="submit"]{display:inline-flex;align-items:center;justify-content:center;gap:0.55em;padding:0.85em 1.6em;border:2px solid transparent;border-radius:var(--ff-btn-radius);background:var(--ff-accent);color:#fff;font-family:var(--ff-font-body);font-size:0.97rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform 0.25s ease,box-shadow 0.25s ease,background-color 0.25s ease,color 0.25s ease,border-color 0.25s ease}.ff-btn:hover,.wp-block-button__link:hover,button[type="submit"]:hover,input[type="submit"]:hover{color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(var(--ff-accent-rgb),0.65)}.ff-btn .ff-icon{transition:transform 0.25s ease}.ff-btn:hover .ff-icon{transform:translateX(4px)}.ff-btn--outline{background:transparent;border-color:currentColor;color:var(--ff-heading)}.ff-btn--outline:hover{background:var(--ff-heading);border-color:var(--ff-heading);color:var(--ff-bg);box-shadow:none}.ff-btn--light{background:#fff;color:#0f172a}.ff-btn--light:hover{color:#0f172a;box-shadow:0 12px 28px -10px rgba(0,0,0,0.45)}.ff-btn--block{width:100%}.ff-icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--ff-border);border-radius:999px;background:transparent;color:inherit;cursor:pointer;transition:background-color 0.2s ease,border-color 0.2s ease,transform 0.2s ease}.ff-icon-btn:hover{background:rgba(var(--ff-accent-rgb),0.1);border-color:rgba(var(--ff-accent-rgb),0.4)}.ff-icon-btn .ff-icon{width:20px;height:20px}.ff-link-arrow{display:inline-flex;align-items:center;gap:0.4em;font-weight:600;text-decoration:none}.ff-link-arrow .ff-icon{transition:transform 0.25s ease}.ff-link-arrow:hover .ff-icon{transform:translateX(4px)}.ff-pulse{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0}.ff-pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ff-pulse 2s ease-out infinite}.ff-topbar{background:var(--ff-topbar-bg);color:var(--ff-topbar-color);font-size:0.85rem}.ff-topbar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;min-height:40px;padding-block:6px}.ff-topbar a{color:inherit;text-decoration:none}.ff-topbar a:hover{color:#fff}.ff-topbar__text{display:flex;align-items:center;gap:8px;margin:0}.ff-topbar__contact{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none}.ff-topbar__contact a{display:inline-flex;align-items:center;gap:6px}.ff-topbar__end{display:flex;align-items:center;gap:16px;margin-left:auto}@media (max-width:700px){.ff-topbar__contact,.ff-topbar .ff-nav--secondary{display:none}}.ff-header{--ff-h-color:var(--ff-header-text);position:relative;z-index:100;background:var(--ff-header-bg);color:var(--ff-h-color);transition:background-color 0.3s ease,box-shadow 0.3s ease,transform 0.35s ease,border-color 0.3s ease}.ff-header.has-border{border-bottom:1px solid var(--ff-border)}.ff-header--sticky-sticky,.ff-header--sticky-smart{position:sticky;top:var(--wp-admin--admin-bar--height,0px)}@media (max-width:600px){.admin-bar .ff-header--sticky-sticky,.admin-bar .ff-header--sticky-smart{top:0}}.ff-header.is-scrolled{box-shadow:0 10px 30px -18px rgba(15,23,42,0.35)}.ff-header.is-hidden{transform:translateY(-110%)}.ff-header.is-transparent{margin-bottom:calc(-1 * var(--ff-header-real,var(--ff-header-h)))}.ff-header.is-transparent:not(.is-scrolled){--ff-h-color:var(--ff-header-t-text);background:transparent;border-bottom-color:transparent}.ff-header.is-transparent:not(.is-scrolled) .ff-icon-btn{border-color:rgba(255,255,255,0.28)}.ff-header__inner{position:relative;display:flex;align-items:center;gap:16px 24px;min-height:var(--ff-header-h)}.ff-branding{display:flex;align-items:center;gap:12px;min-width:0;flex-shrink:0}.ff-branding__logo{position:relative;display:flex}.ff-branding .custom-logo-link,.ff-logo-alt{display:block;line-height:0}.ff-branding .custom-logo,.ff-logo-alt img{width:var(--ff-logo-w);max-width:100%;height:auto;max-height:calc(var(--ff-header-h) - 16px);object-fit:contain;object-position:left center}.ff-logo-alt{position:absolute;inset:0;opacity:0;pointer-events:none}.ff-header.is-transparent:not(.is-scrolled) .ff-logo-alt{opacity:1}.ff-header.is-transparent:not(.is-scrolled) .ff-branding__logo:has(.ff-logo-alt) .custom-logo-link{opacity:0}.ff-site-title{margin:0;font-family:var(--ff-font-heading);font-size:var(--ff-title-size);font-weight:800;letter-spacing:-0.02em;line-height:1.1}.ff-site-title a{color:inherit;text-decoration:none}.ff-site-desc{margin:2px 0 0;font-size:0.8rem;opacity:0.75}.ff-header__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.ff-header__cta{padding:0.7em 1.35em}.ff-header.is-transparent:not(.is-scrolled) .ff-header__cta.ff-btn--outline{color:var(--ff-h-color)}.ff-mode-toggle .ff-mode-toggle__sun,[data-theme="dark"] .ff-mode-toggle .ff-mode-toggle__moon{display:none}[data-theme="dark"] .ff-mode-toggle .ff-mode-toggle__sun{display:block}.ff-header--menu-right .ff-nav-panel{margin-left:auto}.ff-header--menu-left .ff-header__actions{margin-left:auto}.ff-hero{position:relative;display:flex;align-items:center;overflow:hidden;isolation:isolate;background:var(--ff-hero-bg);color:var(--ff-hero-text);padding:calc(var(--ff-header-real,var(--ff-header-h)) * 0.4 + 56px) 0 clamp(64px,9vw,110px)}.has-transparent-header .ff-hero{padding-top:calc(var(--ff-header-real,var(--ff-header-h)) + clamp(40px,6vw,80px))}.ff-hero--h-large{min-height:min(88vh,900px)}.ff-hero--h-full{min-height:100vh;min-height:100svh}.ff-hero__bg{position:absolute;inset:-12% 0 -12%;z-index:-2;will-change:transform}.ff-hero__bg-img{width:100%;height:100%;object-fit:cover}.ff-hero__overlay{position:absolute;inset:0;background:var(--ff-hero-overlay)}.ff-hero__glow{position:absolute;border-radius:50%;filter:blur(70px);opacity:0.55}.ff-hero__glow--1{width:46vw;height:46vw;left:-10vw;top:-8vw;background:var(--ff-accent)}.ff-hero__glow--2{width:38vw;height:38vw;right:-8vw;top:10%;background:var(--ff-accent-2);opacity:0.4}.ff-hero__glow--3{width:30vw;height:30vw;left:35%;bottom:-14vw;background:var(--ff-accent);opacity:0.35}.has-animated-bg .ff-hero__glow--1{animation:ff-float 18s ease-in-out infinite}.has-animated-bg .ff-hero__glow--2{animation:ff-float 22s ease-in-out infinite reverse}.has-animated-bg .ff-hero__glow--3{animation:ff-float 26s ease-in-out infinite}.ff-hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}.ff-hero__shapes{position:absolute;inset:0;z-index:-1;pointer-events:none}.ff-shape{position:absolute;display:block;will-change:transform}.ff-shape--ring{top:12%;left:2%;width:70px;height:70px;border:2px solid rgba(255,255,255,0.25);border-radius:50%}.ff-shape--dot{bottom:22%;left:46%;width:14px;height:14px;border-radius:50%;background:var(--ff-accent-2);box-shadow:0 0 24px var(--ff-accent-2)}.ff-shape--square{top:14%;right:8%;width:34px;height:34px;border-radius:8px;border:2px solid rgba(var(--ff-accent-rgb),0.8);transform:rotate(18deg)}.ff-shape--plus{bottom:14%;right:30%;width:22px;height:22px;background:linear-gradient(currentColor,currentColor) center / 100% 2px no-repeat,linear-gradient(currentColor,currentColor) center / 2px 100% no-repeat;color:rgba(255,255,255,0.4)}.ff-hero__inner{display:grid;grid-template-columns:1fr;align-items:center;gap:clamp(36px,6vw,72px)}@media (min-width:900px){.ff-hero--split-right .ff-hero__inner,.ff-hero--split-left .ff-hero__inner{grid-template-columns:1.15fr 0.85fr}.ff-hero--split-left .ff-hero__media{order:-1}.ff-hero--split-left .ff-hero__inner{grid-template-columns:0.85fr 1.15fr}}.ff-hero--centered .ff-hero__content{max-width:820px;margin:0 auto;text-align:center}.ff-hero--centered .ff-hero__actions,.ff-hero--centered .ff-hero__badge{justify-content:center}.ff-hero--background .ff-hero__content{max-width:760px}.ff-hero__avatar{width:112px;height:112px;margin:0 auto 24px;border-radius:50%;overflow:hidden;border:3px solid rgba(255,255,255,0.25)}.ff-hero__avatar img{width:100%;height:100%;object-fit:cover}.ff-hero__badge{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;padding:8px 16px;border:1px solid rgba(255,255,255,0.18);border-radius:999px;background:rgba(255,255,255,0.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:0.88rem;font-weight:500}.ff-hero__title{margin:0 0 22px;color:inherit;font-size:clamp(2.3rem,5.6vw,var(--ff-hero-title-size));line-height:1.06;letter-spacing:calc(var(--ff-hls) - 0.01em)}.ff-hero__text{max-width:600px;margin:0 0 32px;font-size:clamp(1.05rem,1.4vw,1.22rem);opacity:0.86}.ff-hero--centered .ff-hero__text{margin-inline:auto}.ff-hero__actions{display:flex;flex-wrap:wrap;gap:14px}.ff-hero .ff-btn--outline{color:inherit}.ff-hero .ff-btn--outline:hover{background:#fff;border-color:#fff;color:#0f172a}.ff-hero__note{margin:26px 0 0;font-size:0.9rem;opacity:0.7}.ff-hero__media{position:relative;max-width:460px;width:100%;justify-self:center}.ff-hero__frame{position:relative;overflow:hidden;aspect-ratio:5 / 6;box-shadow:0 40px 80px -30px rgba(0,0,0,0.6)}.ff-hero__frame img{width:100%;height:100%;object-fit:cover;transition:transform 0.8s ease}.ff-hero__media:hover .ff-hero__frame img{transform:scale(1.04)}.ff-frame--rounded{border-radius:calc(var(--ff-radius) * 1.6)}.ff-frame--circle{border-radius:50%;aspect-ratio:1}.ff-frame--arch{border-radius:999px 999px var(--ff-radius) var(--ff-radius)}.ff-frame--blob{border-radius:58% 42% 38% 62% / 45% 52% 48% 55%;animation:ff-blob 14s ease-in-out infinite}.ff-hero__media-deco{position:absolute;inset:8% -6% -6% 8%;z-index:-1;border-radius:calc(var(--ff-radius) * 1.6);background:linear-gradient(135deg,var(--ff-accent),var(--ff-accent-2));opacity:0.35;filter:blur(2px)}.ff-frame--circle + .ff-hero__media-deco,.ff-frame--blob + .ff-hero__media-deco{border-radius:50%}.ff-hero__scroll{position:absolute;left:50%;bottom:26px;width:26px;height:42px;margin-left:-13px;border:2px solid currentColor;border-radius:999px;color:inherit;opacity:0.6}.ff-hero__scroll span{position:absolute;top:8px;left:50%;width:4px;height:8px;margin-left:-2px;border-radius:4px;background:currentColor;animation:ff-scroll 1.8s ease-in-out infinite}.ff-hero__scroll:hover{opacity:1}@media (max-width:899px){.ff-hero__media{max-width:340px}.ff-hero__scroll{display:none}}.ff-js .has-text-anim .ff-anim{opacity:0;transform:translateY(24px);animation:ff-rise 0.9s cubic-bezier(0.2,0.7,0.2,1) forwards;animation-delay:calc(var(--ff-i,0) * 0.1s + 0.1s)}.ff-about{overflow:hidden}.ff-about__grid{display:grid;gap:clamp(36px,6vw,80px);align-items:center}@media (min-width:900px){.ff-about__grid{grid-template-columns:0.9fr 1.1fr}}.ff-about__media{position:relative}.ff-about__frame{position:relative;overflow:hidden;border-radius:calc(var(--ff-radius) * 1.5);box-shadow:0 30px 60px -30px rgba(15,23,42,0.35)}.ff-about__frame img{width:100%;transition:transform 0.8s ease}.ff-about__media:hover .ff-about__frame img{transform:scale(1.05)}.ff-about__deco{position:absolute;right:-18px;bottom:-18px;z-index:-1;width:60%;height:60%;border-radius:calc(var(--ff-radius) * 1.5);background:radial-gradient(rgba(var(--ff-accent-rgb),0.35) 2px,transparent 2px) 0 0 / 16px 16px}.ff-about__text{font-size:1.05em}.ff-checklist{display:grid;gap:12px;margin:24px 0;padding:0;list-style:none}.ff-checklist li{display:flex;align-items:flex-start;gap:12px;color:var(--ff-heading);font-weight:500}.ff-checklist .ff-icon{width:22px;height:22px;padding:4px;border-radius:50%;background:rgba(var(--ff-accent-rgb),0.12);color:var(--ff-accent);margin-top:2px}.ff-skills{display:grid;gap:18px;margin:28px 0 32px}.ff-skill__top{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--ff-heading);font-size:0.95rem;font-weight:600}.ff-skill__bar{height:8px;border-radius:999px;background:var(--ff-border);overflow:hidden}.ff-skill__bar span{display:block;height:100%;width:var(--ff-skill);border-radius:inherit;background:linear-gradient(90deg,var(--ff-accent),var(--ff-accent-2));transform-origin:left;transition:transform 1.2s cubic-bezier(0.2,0.7,0.2,1) 0.2s}.ff-js [data-ff-reveal]:not(.is-visible) .ff-skill__bar span{transform:scaleX(0)}.ff-chips{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 32px;padding:0;list-style:none}.ff-chips li{padding:7px 16px;border:1px solid var(--ff-border);border-radius:999px;background:var(--ff-bg);color:var(--ff-heading);font-size:0.92rem;font-weight:500;transition:border-color 0.2s ease,color 0.2s ease,transform 0.2s ease}.ff-chips li:hover{border-color:var(--ff-accent);color:var(--ff-accent);transform:translateY(-2px)}.ff-service{position:relative;padding:clamp(24px,3vw,34px);border-radius:var(--ff-radius);transition:transform 0.35s ease,box-shadow 0.35s ease,border-color 0.35s ease,background-color 0.35s ease}.ff-services--cards .ff-service{background:var(--ff-bg);box-shadow:0 1px 2px rgba(15,23,42,0.04),0 10px 30px -18px rgba(15,23,42,0.2)}.ff-section--alt .ff-services--cards .ff-service{background:var(--ff-bg)}.ff-services--bordered .ff-service{border:1px solid var(--ff-border)}.ff-services--minimal .ff-service{padding-inline:0}.ff-services--cards .ff-service:hover,.ff-services--bordered .ff-service:hover{transform:translateY(-6px);border-color:rgba(var(--ff-accent-rgb),0.4);box-shadow:0 24px 50px -24px rgba(var(--ff-accent-rgb),0.45)}.ff-service__icon{display:inline-grid;place-items:center;width:56px;height:56px;margin-bottom:20px;border-radius:calc(var(--ff-radius) * 0.9);background:rgba(var(--ff-accent-rgb),0.1);color:var(--ff-accent);transition:background-color 0.35s ease,color 0.35s ease,transform 0.35s ease}.ff-service__icon .ff-icon{width:26px;height:26px}.ff-service:hover .ff-service__icon{background:var(--ff-accent);color:#fff;transform:rotate(-6deg) scale(1.05)}.ff-service__title{margin-bottom:0.45em}.ff-service__text{margin:0}.ff-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 clamp(28px,4vw,44px)}.ff-filter__btn{padding:0.55em 1.2em;border:1px solid var(--ff-border);border-radius:999px;background:transparent;color:var(--ff-heading);font-size:0.92rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all 0.2s ease}.ff-filter__btn:hover{border-color:var(--ff-accent);color:var(--ff-accent)}.ff-filter__btn.is-active{background:var(--ff-heading);border-color:var(--ff-heading);color:var(--ff-bg)}.ff-portfolio{display:grid;gap:clamp(20px,2.6vw,32px)}.ff-project{position:relative;transition:opacity 0.35s ease,transform 0.35s ease}.ff-project.is-filtered-out{display:none}.ff-project.is-filtering-in{animation:ff-pop 0.45s ease both}.ff-project__media{position:relative;overflow:hidden;border-radius:var(--ff-radius);background:var(--ff-surface);transform:translateZ(0)}.ff-project__img{display:block}.ff-project__img img,.ff-project__placeholder{display:block;width:100%;transition:transform 0.7s cubic-bezier(0.2,0.7,0.2,1),filter 0.5s ease}.ff-project__placeholder{aspect-ratio:4 / 3;background:linear-gradient(135deg,rgba(var(--ff-accent-rgb),0.25),rgba(var(--ff-accent-2-rgb),0.25))}.ff-ratio-4-3 .ff-project__img img{aspect-ratio:4 / 3;object-fit:cover}.ff-ratio-1-1 .ff-project__img img{aspect-ratio:1;object-fit:cover}.ff-ratio-16-9 .ff-project__img img{aspect-ratio:16 / 9;object-fit:cover}.ff-ratio-3-4 .ff-project__img img{aspect-ratio:3 / 4;object-fit:cover}.ff-project__body{padding:18px 4px 0}.ff-project__type{margin:0 0 4px;color:var(--ff-accent);font-size:0.8rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase}.ff-project__title{margin:0;font-size:1.2rem}.ff-project__title a{color:var(--ff-heading);text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100% / 0 2px no-repeat;transition:background-size 0.35s ease,color 0.2s ease}.ff-project:hover .ff-project__title a,.ff-project__title a:focus-visible{background-size:100% 2px}.ff-project__title a::after{content:"";position:absolute;inset:0;z-index:2}.ff-project__overlay{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(18px,2.4vw,26px);background:linear-gradient(180deg,transparent 35%,rgba(10,14,30,0.85));color:#fff;opacity:0;transition:opacity 0.4s ease;pointer-events:none}.ff-project__overlay-type{font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;opacity:0.8;transform:translateY(14px);transition:transform 0.45s ease}.ff-project__overlay-title{font-family:var(--ff-font-heading);font-size:1.3rem;font-weight:var(--ff-hw);line-height:1.2;transform:translateY(14px);transition:transform 0.45s ease 0.05s}.ff-project__arrow{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:#0f172a;transform:scale(0.4) rotate(-45deg);opacity:0;transition:transform 0.45s cubic-bezier(0.2,0.7,0.2,1),opacity 0.3s ease}.ff-caption-below .ff-project__overlay{background:rgba(var(--ff-accent-rgb),0.18)}.ff-caption-below .ff-project__overlay-type,.ff-caption-below .ff-project__overlay-title{display:none}.ff-caption-overlay .ff-project__overlay{opacity:1}.ff-caption-overlay .ff-project__overlay-type,.ff-caption-overlay .ff-project__overlay-title{transform:none}.ff-caption-overlay .ff-project__body{position:absolute;inset:0;padding:0;opacity:0}.ff-caption-overlay .ff-project:focus-within .ff-project__media{outline:2px solid var(--ff-accent);outline-offset:3px}.ff-hover-zoom .ff-project:hover .ff-project__img img{transform:scale(1.08)}.ff-hover-overlay .ff-project:hover .ff-project__overlay,.ff-hover-overlay .ff-project:focus-within .ff-project__overlay{opacity:1}.ff-hover-overlay .ff-project:hover .ff-project__overlay-type,.ff-hover-overlay .ff-project:hover .ff-project__overlay-title{transform:none}.ff-hover-overlay .ff-project:hover .ff-project__img img{transform:scale(1.05)}.ff-project:hover .ff-project__arrow,.ff-project:focus-within .ff-project__arrow{opacity:1;transform:none}.ff-hover-none .ff-project__arrow{display:none}.ff-hover-lift .ff-project{transition:transform 0.4s cubic-bezier(0.2,0.7,0.2,1)}.ff-hover-lift .ff-project:hover{transform:translateY(-10px)}.ff-hover-lift .ff-project:hover .ff-project__media{box-shadow:0 30px 50px -28px rgba(15,23,42,0.5)}.ff-hover-tilt .ff-project__media{transition:transform 0.25s ease,box-shadow 0.3s ease;transform:perspective(900px) rotateX(var(--ff-rx,0deg)) rotateY(var(--ff-ry,0deg))}.ff-hover-tilt .ff-project:hover .ff-project__media{box-shadow:0 30px 50px -28px rgba(15,23,42,0.5)}.ff-hover-grayscale .ff-project__img img{filter:grayscale(1)}.ff-hover-grayscale .ff-project:hover .ff-project__img img{filter:none;transform:scale(1.04)}.ff-portfolio--grid.ff-cols-2,.ff-portfolio--grid.ff-cols-3,.ff-portfolio--grid.ff-cols-4{display:grid}.ff-portfolio--masonry{display:block;column-gap:clamp(20px,2.6vw,32px);columns:1}@media (min-width:640px){.ff-portfolio--masonry{columns:2}}@media (min-width:1000px){.ff-portfolio--masonry.ff-cols-3{columns:3}.ff-portfolio--masonry.ff-cols-4{columns:4}}.ff-portfolio--masonry .ff-project{break-inside:avoid;margin-bottom:clamp(20px,2.6vw,32px)}.ff-portfolio--list{display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,80px)}@media (min-width:800px){.ff-portfolio--list .ff-project{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:clamp(28px,5vw,64px)}.ff-portfolio--list .ff-project:nth-child(even) .ff-project__media{order:2}.ff-portfolio--list .ff-project__title{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:0.5em}}.ff-project__excerpt{margin:0 0 1em}.ff-portfolio--list .ff-link-arrow{position:relative;z-index:3}.ff-stats{text-align:center}.ff-stats.ff-cols-1{grid-template-columns:1fr}@media (max-width:639px){.ff-stats.ff-cols-2,.ff-stats.ff-cols-3,.ff-stats.ff-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1000px){.ff-stats.ff-cols-2{grid-template-columns:repeat(2,1fr)}}.ff-stats--cards .ff-stat{padding:clamp(22px,3vw,34px) 16px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);transition:transform 0.3s ease,border-color 0.3s ease}.ff-stats--cards .ff-stat:hover{transform:translateY(-4px);border-color:rgba(var(--ff-accent-rgb),0.45)}.ff-stat__number{margin:0;color:var(--ff-heading);font-family:var(--ff-font-heading);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:800;letter-spacing:-0.03em;line-height:1;font-variant-numeric:tabular-nums}.ff-stat__number span{background:linear-gradient(100deg,var(--ff-accent),var(--ff-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ff-stat__label{margin:10px 0 0;font-size:0.95rem}.ff-steps{margin:0;padding:0;list-style:none;counter-reset:none}.ff-step{position:relative;padding:28px 24px;border-radius:var(--ff-radius);background:var(--ff-bg);border:1px solid var(--ff-border);transition:transform 0.3s ease,box-shadow 0.3s ease}.ff-step:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(15,23,42,0.35)}.ff-step__num{display:inline-block;margin-bottom:14px;font-family:var(--ff-font-heading);font-size:2.4rem;font-weight:800;line-height:1;-webkit-text-stroke:1.5px var(--ff-accent);color:transparent}.ff-step__text{margin:0}.ff-quotes{position:relative}.ff-quotes--grid .ff-quotes__track{display:grid;gap:clamp(18px,2.4vw,28px)}@media (min-width:700px){.ff-quotes--grid .ff-quotes__track{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.ff-quotes--grid .ff-quotes__track{grid-template-columns:repeat(3,1fr)}}.ff-quotes--slider .ff-quotes__track{display:grid;grid-auto-flow:column;grid-auto-columns:min(88%,380px);gap:clamp(18px,2.4vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 26px;scrollbar-width:none}.ff-quotes--slider .ff-quotes__track::-webkit-scrollbar{display:none}.ff-quotes--slider .ff-quote{scroll-snap-align:start}.ff-quotes__nav{display:flex;justify-content:center;gap:10px;margin-top:8px}.ff-quotes__prev .ff-icon{transform:rotate(180deg)}.ff-quote{display:flex;flex-direction:column;margin:0;padding:clamp(24px,3vw,32px);border-radius:var(--ff-radius);background:var(--ff-bg);border:1px solid var(--ff-border);transition:transform 0.3s ease,box-shadow 0.3s ease}.ff-quote:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(15,23,42,0.35)}.ff-quote__stars{display:flex;gap:2px;margin:0 0 14px;color:var(--ff-border)}.ff-quote__stars .ff-icon{width:18px;height:18px}.ff-quote__stars .is-on{color:#f5b301;fill:currentColor}.ff-quote__text{flex:1;margin:0 0 22px;padding:0;border:0;color:var(--ff-heading);font-size:1.04rem}.ff-quote__text p:last-child{margin-bottom:0}.ff-quote__author{display:flex;align-items:center;gap:12px;margin:0;text-align:left;opacity:1;font-size:0.95rem}.ff-quote__avatar{width:46px;height:46px;border-radius:50%;object-fit:cover}.ff-quote__avatar--initials{display:grid;place-items:center;background:linear-gradient(135deg,var(--ff-accent),var(--ff-accent-2));color:#fff;font-weight:700}.ff-quote__name{display:block;color:var(--ff-heading)}.ff-quote__role{display:block;font-size:0.88rem}.ff-cta{padding-block:calc(var(--ff-section-y) * 0.5)}.ff-cta__box{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding:clamp(32px,5vw,64px);border-radius:calc(var(--ff-radius) * 1.6);overflow:hidden;isolation:isolate;color:#fff;background:var(--ff-accent)}.ff-cta--gradient .ff-cta__box{background:linear-gradient(120deg,var(--ff-accent),var(--ff-accent-2))}.ff-cta--dark .ff-cta__box{background:var(--ff-hero-bg)}.ff-cta__glow{position:absolute;right:-10%;top:-60%;z-index:-1;width:50%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,0.18);filter:blur(30px);transition:transform 0.8s ease}.ff-cta__box:hover .ff-cta__glow{transform:translate(-10%,10%) scale(1.1)}.ff-cta__content{max-width:620px}.ff-cta__title{margin:0 0 0.3em;color:#fff;font-size:clamp(1.7rem,3.4vw,2.6rem)}.ff-cta__title em{background:none;color:inherit;-webkit-text-fill-color:currentColor;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}.ff-cta__text{margin:0;font-size:1.08rem;opacity:0.9}.ff-contact__grid{display:grid;gap:clamp(36px,5vw,64px)}@media (min-width:900px){.ff-contact__grid{grid-template-columns:1fr 1fr;align-items:start}}.ff-contact__list{display:grid;gap:18px;margin:30px 0;padding:0;list-style:none}.ff-contact__list li{display:flex;align-items:center;gap:14px;color:var(--ff-heading);font-weight:500}.ff-contact__list small{display:block;color:var(--ff-text);font-weight:400}.ff-contact__list a{color:var(--ff-heading);text-decoration:none}.ff-contact__list a:hover{color:var(--ff-accent)}.ff-contact__icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:calc(var(--ff-radius) * 0.8);background:rgba(var(--ff-accent-rgb),0.1);color:var(--ff-accent)}.ff-contact__panel{padding:clamp(24px,4vw,40px);border-radius:calc(var(--ff-radius) * 1.4);background:var(--ff-bg);border:1px solid var(--ff-border);box-shadow:0 30px 60px -40px rgba(15,23,42,0.4)}.ff-contact__card h3{margin-top:18px}.ff-contact__card-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--ff-accent),var(--ff-accent-2));color:#fff}.ff-contact__card-icon .ff-icon{width:26px;height:26px}.ff-social__list{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.ff-social__list a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--ff-border);border-radius:50%;color:var(--ff-heading);transition:background-color 0.2s ease,color 0.2s ease,transform 0.2s ease,border-color 0.2s ease}.ff-social__list a:hover{background:var(--ff-accent);border-color:var(--ff-accent);color:#fff;transform:translateY(-3px)}.ff-social__list .ff-icon{width:18px;height:18px}.ff-social--small .ff-social__list a{width:28px;height:28px;border:0;color:inherit}.ff-social--small .ff-icon{width:15px;height:15px}.ff-page-header{position:relative;padding:clamp(48px,7vw,96px) 0 clamp(36px,5vw,64px);overflow:hidden;isolation:isolate;background:var(--ff-surface)}.ff-page-header__bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(600px 300px at 10% 0%,rgba(var(--ff-accent-rgb),0.16),transparent 70%),radial-gradient(500px 280px at 90% 100%,rgba(var(--ff-accent-2-rgb),0.14),transparent 70%)}.ff-page-header__title{margin:0;max-width:900px}.ff-page-header__desc,.ff-page-header__lead{max-width:720px;margin-top:16px;font-size:1.12rem}.ff-page-header__desc p:last-child{margin-bottom:0}.ff-page-header--post .ff-page-header__inner,.ff-page-header--post .ff-page-header__title{margin-inline:auto;text-align:center}.ff-page-header--post .ff-breadcrumbs ol{justify-content:center}.ff-breadcrumbs{margin-bottom:18px;font-size:0.88rem}.ff-breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none}.ff-breadcrumbs li + li::before{content:"/";margin-right:6px;opacity:0.45}.ff-breadcrumbs a{color:var(--ff-text);text-decoration:none}.ff-breadcrumbs a:hover{color:var(--ff-accent)}.ff-breadcrumbs [aria-current]{color:var(--ff-heading);font-weight:600}.ff-single__cats{margin:0 0 12px}.ff-cat{display:inline-block;padding:0.25em 0.8em;border-radius:999px;background:rgba(var(--ff-accent-rgb),0.1);font-size:0.78rem;font-weight:700;letter-spacing:0.05em;text-decoration:none;text-transform:uppercase}.ff-single__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:18px 0 0;font-size:0.92rem}.ff-single__meta a{color:var(--ff-heading);text-decoration:none}.ff-single__image,.ff-case__image{margin:0 0 clamp(32px,5vw,56px);overflow:hidden;border-radius:calc(var(--ff-radius) * 1.4)}.ff-single__image img,.ff-case__image img{width:100%}.ff-with-sidebar{display:grid;gap:clamp(32px,5vw,64px)}@media (min-width:1000px){.ff-with-sidebar{grid-template-columns:minmax(0,1fr) 320px}.ff-sidebar-left .ff-sidebar{order:-1}.ff-with-sidebar.ff-sidebar-left{grid-template-columns:320px minmax(0,1fr)}}.ff-content-area{min-width:0}.ff-entry-content{max-width:760px;margin-inline:auto;font-size:1.06em}.ff-with-sidebar .ff-entry-content{max-width:none}.ff-entry-content--wide,.ff-entry-content--full{max-width:none}.ff-entry-content>*{margin-block:0 1.25em}.ff-entry-content>.alignwide{--ff-wide:min(var(--ff-container),calc(100vw - 2 * clamp(16px,4vw,32px)));width:var(--ff-wide);max-width:none;margin-left:calc(50% - var(--ff-wide) / 2);margin-right:calc(50% - var(--ff-wide) / 2)}.ff-entry-content>.alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.ff-with-sidebar .ff-entry-content>.alignwide,.ff-with-sidebar .ff-entry-content>.alignfull,.ff-case--split .ff-entry-content>.alignwide,.ff-case--split .ff-entry-content>.alignfull{width:auto;margin-left:0;margin-right:0}.ff-entry-content--full>*:not(.alignfull):not(.alignwide){width:min(760px,calc(100% - 32px));margin-inline:auto}.ff-entry-content--full>.alignwide{width:min(var(--ff-container),calc(100% - 32px))}.ff-entry-content h2,.ff-entry-content h3,.ff-entry-content h4{margin-top:1.7em}.ff-entry-content a:not(.wp-block-button__link):not(.ff-btn){text-decoration:underline;text-decoration-color:rgba(var(--ff-accent-rgb),0.4);text-decoration-thickness:2px;transition:text-decoration-color 0.2s ease,color 0.2s ease}.ff-entry-content a:not(.wp-block-button__link):not(.ff-btn):hover{text-decoration-color:currentColor}.ff-entry-content blockquote:not(.ff-quote__text),.wp-block-quote{margin-inline:0;padding:4px 0 4px 24px;border-left:3px solid var(--ff-accent);color:var(--ff-heading);font-size:1.1em}.wp-block-quote cite{display:block;margin-top:10px;color:var(--ff-text);font-size:0.85em;font-style:normal;font-weight:600}.wp-block-pullquote{border-color:var(--ff-accent)}.ff-entry-content pre,.wp-block-code{padding:1.2em 1.4em;overflow-x:auto;border-radius:var(--ff-radius);background:#0f172a;color:#e2e8f0;font-size:0.9em}code{padding:0.15em 0.4em;border-radius:6px;background:var(--ff-surface);font-size:0.9em}pre code{padding:0;background:none}.wp-block-image img{border-radius:inherit}.wp-block-separator{border-top-color:var(--ff-border)}.wp-block-details{padding:18px 22px;margin-bottom:12px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);transition:border-color 0.2s ease}.wp-block-details[open]{border-color:rgba(var(--ff-accent-rgb),0.45)}.wp-block-details summary{position:relative;padding-right:36px;cursor:pointer;color:var(--ff-heading);font-weight:600;list-style:none}.wp-block-details summary::-webkit-details-marker{display:none}.wp-block-details summary::after{content:"+";position:absolute;top:50%;right:0;display:grid;place-items:center;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:rgba(var(--ff-accent-rgb),0.12);color:var(--ff-accent);font-size:18px;font-weight:500;line-height:1;transition:transform 0.25s ease}.wp-block-details[open] summary::after{transform:rotate(45deg)}.wp-block-details>*:not(summary){margin-top:12px;margin-bottom:0}.ff-tags{display:flex;flex-wrap:wrap;gap:8px;max-width:760px;margin:32px auto}.ff-tags a{padding:0.35em 0.9em;border:1px solid var(--ff-border);border-radius:999px;color:var(--ff-heading);font-size:0.85rem;text-decoration:none}.ff-tags a:hover{border-color:var(--ff-accent);color:var(--ff-accent)}.ff-author{display:flex;gap:18px;max-width:760px;margin:32px auto;padding:24px;border-radius:var(--ff-radius);background:var(--ff-surface)}.ff-author__avatar{border-radius:50%;flex-shrink:0}.ff-author__name{margin:0 0 4px;font-weight:700}.ff-author__name a{color:var(--ff-heading);text-decoration:none}.ff-author__bio{margin:0}.post-navigation{max-width:760px;margin:40px auto}.ff-case .post-navigation{max-width:none}.post-navigation .nav-links{display:grid;gap:16px}@media (min-width:640px){.post-navigation .nav-links{grid-template-columns:1fr 1fr}.post-navigation .nav-next{grid-column:2;text-align:right}}.post-navigation a{display:block;height:100%;padding:18px 22px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);text-decoration:none;transition:border-color 0.2s ease,transform 0.2s ease}.post-navigation a:hover{border-color:var(--ff-accent);transform:translateY(-2px)}.ff-nav-label{display:block;color:var(--ff-text);font-size:0.82rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase}.ff-nav-title{display:block;margin-top:4px;color:var(--ff-heading);font-weight:700}.ff-post-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);transition:transform 0.35s ease,box-shadow 0.35s ease}.ff-post-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -32px rgba(15,23,42,0.45)}.ff-post-card__media{display:block;overflow:hidden;aspect-ratio:16 / 10;background:var(--ff-surface)}.ff-post-card__media img,.ff-post-card__placeholder{display:block;width:100%;height:100%;object-fit:cover;transition:transform 0.7s ease}.ff-post-card__placeholder{background:linear-gradient(135deg,rgba(var(--ff-accent-rgb),0.25),rgba(var(--ff-accent-2-rgb),0.25))}.ff-post-card:hover .ff-post-card__media img{transform:scale(1.06)}.ff-post-card__body{display:flex;flex:1;flex-direction:column;padding:22px 24px 26px}.ff-post-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;font-size:0.85rem}.ff-post-card__title{margin:0 0 10px;font-size:1.2rem}.ff-post-card__title a{color:var(--ff-heading);text-decoration:none}.ff-post-card__title a:hover{color:var(--ff-accent)}.ff-post-card__excerpt{flex:1;margin:0 0 16px}.ff-posts--list{display:grid;grid-template-columns:1fr !important;gap:24px}@media (min-width:700px){.ff-posts--list .ff-post-card{flex-direction:row}.ff-posts--list .ff-post-card__media{flex:0 0 38%;aspect-ratio:auto}}.ff-pagination,.navigation.pagination{margin-top:48px}.ff-pagination .nav-links,.pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--ff-border);border-radius:999px;color:var(--ff-heading);font-weight:600;text-decoration:none}.page-numbers.current,a.page-numbers:hover{background:var(--ff-accent);border-color:var(--ff-accent);color:#fff}.ff-search-form{position:relative;display:flex;max-width:520px}.ff-search-form__input{padding-right:52px;border-radius:999px}.ff-search-form .ff-search-form__btn{position:absolute;top:50%;right:6px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--ff-accent);color:#fff;transform:translateY(-50%);cursor:pointer;min-width:0}.ff-search-form .ff-search-form__btn .ff-icon{width:18px;height:18px}.ff-search-form .ff-search-form__btn:hover{transform:translateY(-50%);box-shadow:none}.ff-search-again{margin-bottom:32px}.ff-sidebar .ff-widget{margin-bottom:28px;padding:24px;border:1px solid var(--ff-border);border-radius:var(--ff-radius)}.ff-widget__title,.ff-widget h2,.ff-widget .wp-block-heading,.ff-widget .wp-block-search__label{margin-bottom:14px;color:var(--ff-heading);font-size:1.05rem}.ff-widget a{color:var(--ff-heading);text-decoration:none}.ff-widget a:hover{color:var(--ff-accent)}.ff-widget .wp-block-search__inside-wrapper{gap:8px}.ff-widget .wp-block-search__button{margin:0;padding:0.6em 1.1em}.ff-widget .wp-block-latest-posts,.ff-widget .wp-block-categories,.ff-widget .wp-block-archives{padding-left:0;list-style:none}.ff-widget ul{margin:0;padding-left:1.1em}.ff-widget li{margin-bottom:6px}.ff-empty{padding:48px 24px;border-radius:var(--ff-radius);background:var(--ff-surface);text-align:center}.ff-empty .ff-search-form{margin:18px auto 0}.ff-404__inner{text-align:center}.ff-404__code{margin:0;font-family:var(--ff-font-heading);font-size:clamp(6rem,18vw,11rem);font-weight:800;line-height:1;background:linear-gradient(120deg,var(--ff-accent),var(--ff-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.ff-404 .ff-search-form{margin:24px auto}.ff-comments{max-width:760px;margin:48px auto 0}.ff-comments__list,.ff-comments__list .children{list-style:none;padding:0}.ff-comments__list .children{padding-left:clamp(16px,4vw,40px)}.ff-comments .comment-body{margin-bottom:18px;padding:20px;border:1px solid var(--ff-border);border-radius:var(--ff-radius)}.ff-comments .comment-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:0.9rem}.ff-comments .avatar{display:inline-block;margin-right:10px;border-radius:50%;vertical-align:middle}.ff-comments .reply a{font-size:0.88rem;font-weight:600}.comment-respond{margin-top:32px}.comment-form p{margin-bottom:16px}.ff-case__meta-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px;padding:22px 26px;border:1px solid var(--ff-border);border-radius:var(--ff-radius)}.ff-case__meta{display:flex;flex-wrap:wrap;gap:18px 40px;margin:0}.ff-case__meta dt{color:var(--ff-text);font-size:0.8rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase}.ff-case__meta dd{margin:2px 0 0;color:var(--ff-heading);font-weight:600}.ff-case__body{display:grid;gap:40px}.ff-case--split .ff-case__body{align-items:start}@media (min-width:1000px){.ff-case--split .ff-case__body{grid-template-columns:minmax(0,1fr) 340px}.ff-case--split .ff-entry-content{max-width:none;margin:0}}.ff-case__aside{position:sticky;top:calc(var(--ff-header-real,var(--ff-header-h)) + 24px)}.ff-case__card{padding:26px;border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-surface)}.ff-case__card-title{font-size:1.1rem}.ff-case__card .ff-case__meta{display:grid;gap:14px;margin-bottom:22px}.ff-footer{background:var(--ff-footer-bg);color:var(--ff-footer-text);font-size:0.95rem}.ff-footer a{color:var(--ff-footer-text);text-decoration:none}.ff-footer a:hover{color:var(--ff-footer-heading)}.ff-footer__top{padding-block:clamp(48px,7vw,80px) clamp(32px,4vw,48px)}.ff-footer__top--default{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px}.ff-footer__title{margin:0 0 6px;font-family:var(--ff-font-heading);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-0.02em}.ff-footer__title a{color:var(--ff-footer-heading)}.ff-footer__desc{margin:0;max-width:420px}.ff-footer__reach{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.ff-footer__email{color:var(--ff-footer-heading) !important;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:600;background:linear-gradient(currentColor,currentColor) 0 100% / 0 2px no-repeat;transition:background-size 0.35s ease}.ff-footer__email:hover{background-size:100% 2px}.ff-footer .ff-social__list a{border-color:rgba(255,255,255,0.15);color:var(--ff-footer-heading)}.ff-footer .ff-social__list a:hover{border-color:var(--ff-accent)}.ff-footer .ff-widget__title{color:var(--ff-footer-heading)}.ff-footer .ff-widget ul{padding:0;list-style:none}.ff-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:22px;border-top:1px solid rgba(255,255,255,0.1);font-size:0.88rem}.ff-footer__bottom p{margin:0}.ff-footer__menu{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0;padding:0;list-style:none}.ff-to-top{position:fixed;right:20px;bottom:20px;z-index:90;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--ff-accent);color:#fff;box-shadow:0 12px 26px -10px rgba(var(--ff-accent-rgb),0.7);opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity 0.3s ease,transform 0.3s ease,visibility 0.3s ease}.ff-to-top.is-visible{opacity:1;visibility:visible;transform:none}.ff-to-top:hover{color:#fff;transform:translateY(-3px)}.ff-js [class*="ff-reveal-"] [data-ff-reveal]{transition:opacity 0.8s cubic-bezier(0.2,0.7,0.2,1),transform 0.8s cubic-bezier(0.2,0.7,0.2,1);transition-delay:calc(var(--ff-d,0) * 80ms)}.ff-js .ff-reveal-fade [data-ff-reveal]:not(.is-visible){opacity:0}.ff-js .ff-reveal-fade-up [data-ff-reveal]:not(.is-visible){opacity:0;transform:translateY(32px)}.ff-js .ff-reveal-zoom [data-ff-reveal]:not(.is-visible){opacity:0;transform:scale(0.94)}.ff-js body:not([class*="ff-reveal-"]) [data-ff-reveal]{opacity:1}.is-style-ff-card{padding:clamp(24px,3vw,36px);border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);box-shadow:0 20px 40px -32px rgba(15,23,42,0.35)}.is-style-ff-soft{padding:clamp(24px,4vw,48px);border-radius:var(--ff-radius);background:var(--ff-surface)}.is-style-ff-gradient{padding:clamp(28px,5vw,64px);border-radius:calc(var(--ff-radius) * 1.4);background:linear-gradient(120deg,var(--ff-accent),var(--ff-accent-2));color:#fff}.is-style-ff-gradient :where(h1,h2,h3,h4,p,a){color:#fff}.is-style-ff-gradient .wp-block-button__link{background:#fff;color:#0f172a}.wp-block-columns.is-style-ff-cards>.wp-block-column{padding:clamp(22px,3vw,32px);border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);transition:transform 0.3s ease,box-shadow 0.3s ease,border-color 0.3s ease}.wp-block-columns.is-style-ff-cards>.wp-block-column:hover{transform:translateY(-5px);border-color:rgba(var(--ff-accent-rgb),0.45);box-shadow:0 24px 46px -30px rgba(var(--ff-accent-rgb),0.55)}.wp-block-image.is-style-ff-rounded img,.wp-block-image.is-style-ff-shadow img,.wp-block-image.is-style-ff-hover-zoom img{border-radius:var(--ff-radius)}.wp-block-image.is-style-ff-shadow img{box-shadow:0 30px 60px -30px rgba(15,23,42,0.45)}.wp-block-image.is-style-ff-hover-zoom{overflow:hidden;border-radius:var(--ff-radius)}.wp-block-image.is-style-ff-hover-zoom img{transition:transform 0.7s ease}.wp-block-image.is-style-ff-hover-zoom:hover img{transform:scale(1.06)}.wp-block-button.is-style-ff-arrow .wp-block-button__link::after{content:"\2192";transition:transform 0.25s ease}.wp-block-button.is-style-ff-arrow .wp-block-button__link:hover::after{transform:translateX(4px)}.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;border-color:currentColor;color:var(--ff-heading)}.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--ff-heading);border-color:var(--ff-heading);color:var(--ff-bg);box-shadow:none}.is-style-ff-gradient-text{background:linear-gradient(100deg,var(--ff-accent),var(--ff-accent-2));-webkit-background-clip:text;background-clip:text;color:transparent !important}p.is-style-ff-eyebrow{display:inline-block;margin-bottom:1em;padding:0.35em 0.9em;border-radius:999px;background:rgba(var(--ff-accent-rgb),0.1);color:var(--ff-accent);font-size:0.78rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase}.has-text-align-center.is-style-ff-eyebrow{display:table;margin-inline:auto}.is-style-ff-gradient p.is-style-ff-eyebrow{background:rgba(255,255,255,0.18)}p.is-style-ff-lead{font-size:1.2em;color:var(--ff-heading);opacity:0.85}ul.is-style-ff-checklist{padding-left:0;list-style:none}ul.is-style-ff-checklist li{position:relative;padding-left:32px;margin-bottom:10px}ul.is-style-ff-checklist li::before{content:"";position:absolute;left:0;top:0.25em;width:20px;height:20px;border-radius:50%;background:rgba(var(--ff-accent-rgb),0.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d5dfc' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat}.is-style-ff-gradient ul.is-style-ff-checklist li::before{background-color:rgba(255,255,255,0.25)}.wp-block-quote.is-style-ff-testimonial{padding:clamp(24px,3vw,32px);border:1px solid var(--ff-border);border-radius:var(--ff-radius);background:var(--ff-bg);font-size:1.05rem}.wp-block-quote.is-style-ff-testimonial::before{content:"\201C";display:block;height:0.6em;color:var(--ff-accent);font-family:Georgia,serif;font-size:3.4rem;line-height:1}hr.is-style-ff-accent{width:64px;margin-left:0;border:0;border-top:4px solid var(--ff-accent);border-radius:4px;opacity:1}.ff-pattern-price .wp-block-column{display:flex;flex-direction:column}.ff-pattern-price .wp-block-buttons{margin-top:auto;padding-top:12px}.ff-pattern-price .wp-block-column>.is-style-ff-eyebrow{align-self:flex-start}.ff-entry-content>.wp-block-group + *,.ff-entry-content>* + .wp-block-group,.ff-entry-content>.wp-block-columns.alignwide + *,.ff-entry-content>* + .wp-block-columns.alignwide{margin-top:clamp(56px,8vw,104px)}.ff-pattern-price .ff-price{margin:0;color:var(--ff-heading);font-family:var(--ff-font-heading);font-size:2.6rem;font-weight:800;line-height:1.1}.ff-pattern-price .ff-featured-plan{position:relative;border-color:var(--ff-accent) !important;box-shadow:0 30px 60px -36px rgba(var(--ff-accent-rgb),0.7)}.ff-pattern-stat{margin:0;color:var(--ff-heading);font-family:var(--ff-font-heading);font-size:clamp(2.2rem,4vw,3rem);font-weight:800;line-height:1}@keyframes ff-rise{to{opacity:1;transform:none}}@keyframes ff-float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(4vw,3vw) scale(1.08)}66%{transform:translate(-3vw,2vw) scale(0.95)}}@keyframes ff-blob{0%,100%{border-radius:58% 42% 38% 62% / 45% 52% 48% 55%}50%{border-radius:42% 58% 60% 40% / 55% 40% 60% 45%}}@keyframes ff-pulse{0%{transform:scale(1);opacity:0.7}100%{transform:scale(2.8);opacity:0}}@keyframes ff-scroll{0%{transform:translateY(0);opacity:1}80%{transform:translateY(14px);opacity:0}100%{opacity:0}}@keyframes ff-pop{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}.ff-js .has-text-anim .ff-anim,.ff-js [data-ff-reveal]{opacity:1 !important;transform:none !important}}@media print{.ff-topbar,.ff-header,.ff-footer,.ff-to-top,.ff-cta,.ff-hero__scroll{display:none !important}.ff-hero{min-height:0 !important;color:#000;background:none}}