/* scroll-padding-top keeps in-page anchors (#main, #top, any heading link) from
* landing underneath the fixed 76px header. Without it every anchor jump parks
* the target behind the nav. */
html{scroll-behavior:smooth;scroll-padding-top:92px;max-width:100%;overflow-x:hidden!important}
body{max-width:100%;overflow-x:hidden!important}
/* React homepage owns its own header — suppress the WP-shell overlays when the
* React app is mounted. The React entry point (src/main.tsx) sets
* data-react-shell=”homepage” on as the primary signal; the
* body:has(.fusion-page) rule is a defensive secondary signal for any future
* shell that does not consult the data attribute. */
html[data-react-shell=”homepage”] .ff-unified-nav,html[data-react-shell=”homepage”] .ff-back-top,html[data-react-shell=”homepage”] .ff-route-dock,html[data-react-shell=”homepage”] .ff-skip-link,html[data-react-shell=”homepage”] #top.ff-top-anchor,html[data-react-shell=”homepage”] .ff-top-anchor,html[data-react-shell=”homepage”] nav.ff-nav{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.fusion-page~.ff-unified-nav,.fusion-page~.ff-back-top,.fusion-page~.ff-route-dock,.fusion-page~.ff-skip-link,.fusion-page~#top,.fusion-page~.ff-top-anchor{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
body:has(.fusion-page) .ff-unified-nav,body:has(.fusion-page) .ff-back-top,body:has(.fusion-page) .ff-route-dock,body:has(.fusion-page) .ff-skip-link,body:has(.fusion-page) #top.ff-top-anchor,body:has(.fusion-page) .ff-top-anchor{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
#site-header,.page-header,.entry-title,.elementor-location-header,[data-elementor-type=”header”],header.site-header{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
body nav.ff-nav:not(.ff-unified-nav){display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.ff-skip-link{position:fixed!important;left:16px!important;top:-80px!important;z-index:100002!important;background:#f5cf75!important;color:#08111b!important;border-radius:8px!important;padding:10px 13px!important;font:900 13px/1 Inter,Arial,sans-serif!important;text-decoration:none!important;box-shadow:0 14px 30px rgba(0,0,0,.35)!important}
.ff-skip-link:focus{top:88px!important}
.ff-unified-nav,.ff-unified-nav *{box-sizing:border-box!important}
.ff-unified-nav{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:100001!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:14px!important;min-height:76px!important;max-height:76px!important;overflow:visible!important;padding:0 22px!important;border-bottom:1px solid rgba(216,168,74,.62)!important;background:linear-gradient(180deg,rgba(2,5,10,.98),rgba(2,5,10,.94))!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;box-shadow:0 18px 55px rgba(0,0,0,.58)!important;font-family:Inter,Arial,Helvetica,sans-serif!important}
.ff-unified-nav a,.ff-unified-nav button,.ff-unified-nav summary{text-decoration:none!important;color:#f4f0e3!important;font:900 13px/1 Inter,Arial,Helvetica,sans-serif!important;letter-spacing:0!important}
/* min-height 44px on the brand, the back-to-top control, the header CTA and the
* route-dock summary is the WCAG 2.2 “Target Size (Enhanced)” comfort figure.
* All four cleared the AA 24px floor and sat at 38–42px, which the 2026-08-07
* route sweep flagged on 32 routes. See docs/PLAN_2026-08-08.md TAP-01..TAP-04. */
.ff-unified-brand{display:flex!important;align-items:center!important;gap:12px!important;margin-right:auto!important;color:#f5cf75!important;min-width:max-content!important;min-height:44px!important;flex:0 0 auto!important}
.ff-unified-sigil{display:grid!important;place-items:center!important;width:42px!important;height:42px!important;border:1px solid rgba(245,207,117,.72)!important;border-radius:9px!important;background:radial-gradient(circle at 50% 22%,rgba(245,207,117,.18),rgba(0,0,0,.18))!important;box-shadow:0 0 34px rgba(216,168,74,.22)!important;overflow:hidden!important}
.ff-unified-sigil img{display:block!important;width:34px!important;height:34px!important;object-fit:contain!important;filter:drop-shadow(0 0 12px rgba(245,207,117,.34))!important}
.ff-unified-brand-text{display:grid!important;gap:3px!important}
.ff-unified-brand-text strong{font-family:Georgia,serif!important;font-size:24px!important;line-height:1!important;color:#f5cf75!important;font-weight:500!important;white-space:nowrap!important}
.ff-unified-brand-text span{font:900 9px/1 Inter,Arial,sans-serif!important;letter-spacing:.18em!important;text-transform:uppercase!important;color:#73e7ff!important;white-space:nowrap!important}
.ff-nav-desktop{display:flex!important;align-items:center!important;gap:4px!important;flex:0 1 auto!important;min-width:0!important;flex-wrap:nowrap!important}
.ff-nav-group{position:relative!important;flex:0 0 auto!important}
.ff-nav-group>button{display:inline-flex!important;align-items:center!important;gap:5px!important;min-height:40px!important;border:1px solid transparent!important;border-radius:8px!important;background:transparent!important;padding:0 9px!important;cursor:pointer!important;white-space:nowrap!important}
.ff-nav-caret{font-size:10px!important;opacity:.75!important;line-height:1!important}
.ff-nav-group>button:hover,.ff-nav-group:focus-within>button{border-color:rgba(216,168,74,.4)!important;background:rgba(255,255,255,.045)!important;color:#f5cf75!important}
.ff-nav-group-current>button{border-color:rgba(245,207,117,.52)!important;background:linear-gradient(180deg,rgba(216,168,74,.14),rgba(79,223,255,.05))!important;color:#fff4ce!important}
/* CLOSED by default — never opacity-only */
.ff-nav-menu{display:none!important;position:absolute!important;right:0!important;top:calc(100% + 8px)!important;z-index:100010!important;width:300px!important;gap:8px!important;padding:12px!important;border:1px solid rgba(216,168,74,.42)!important;border-radius:10px!important;background:linear-gradient(180deg,rgba(7,17,28,.99),rgba(2,5,10,.99))!important;box-shadow:0 24px 70px rgba(0,0,0,.62)!important;pointer-events:none!important;visibility:hidden!important}
/* Opened by hover (mouse), by focus-within (keyboard tabbing), and by
* aria-expanded=”true” (click / tap — set by ff-unified-navigation-js).
* The aria-expanded selector is what makes the menus reachable on touch
* devices: without it the JS removes [hidden] but display:none!important
* still wins, so tapping a group did nothing. */
.ff-nav-group:hover .ff-nav-menu,.ff-nav-group:focus-within .ff-nav-menu,.ff-nav-group>button[aria-expanded=”true”]+.ff-nav-menu{display:grid!important;pointer-events:auto!important;visibility:visible!important}
.ff-nav-menu a,.ff-mobile-panel a{display:grid!important;gap:4px!important;border:1px solid rgba(79,223,255,.14)!important;border-radius:8px!important;padding:11px 12px!important;background:rgba(255,255,255,.035)!important;color:#f4f0e3!important}
.ff-nav-menu a:hover,.ff-nav-menu a:focus,.ff-mobile-panel a:hover,.ff-mobile-panel a:focus{border-color:rgba(245,207,117,.45)!important;background:rgba(216,168,74,.08)!important;color:#fff!important}
.ff-nav-menu a.ff-nav-current,.ff-mobile-panel a.ff-nav-current,.ff-nav-direct>a.ff-nav-current{border-color:rgba(245,207,117,.68)!important;background:linear-gradient(180deg,rgba(216,168,74,.14),rgba(79,223,255,.06))!important;color:#fff4ce!important;box-shadow:inset 0 0 0 1px rgba(245,207,117,.12)!important}
.ff-nav-menu strong,.ff-mobile-panel strong,.ff-route-dock-panel strong{display:block!important;color:#fff!important;font-size:13px!important;line-height:1.15!important}
.ff-nav-menu span,.ff-mobile-panel span,.ff-route-dock-panel span{display:block!important;color:#cfc6b8!important;font-size:11px!important;line-height:1.3!important;font-weight:800!important}
.ff-nav-direct{display:flex!important;align-items:center!important;gap:4px!important;flex:0 0 auto!important;flex-wrap:nowrap!important}
.ff-nav-direct>a{display:inline-flex!important;align-items:center!important;min-height:40px!important;border:1px solid transparent!important;border-radius:8px!important;padding:0 9px!important;white-space:nowrap!important}
.ff-nav-direct>a:hover{border-color:rgba(79,223,255,.28)!important;background:rgba(79,223,255,.08)!important;color:#bff6ff!important}
.ff-nav-cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;border:1px solid rgba(216,168,74,.76)!important;border-radius:8px!important;padding:0 14px!important;background:rgba(216,168,74,.08)!important;color:#f5cf75!important;white-space:nowrap!important;flex:0 0 auto!important}
.ff-nav-cta:hover{background:rgba(216,168,74,.16)!important;color:#fff4ce!important}
.ff-mobile-nav{display:none!important;position:relative!important;flex:0 0 auto!important}
.ff-mobile-nav>summary{list-style:none!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;border:1px solid rgba(79,223,255,.35)!important;border-radius:8px!important;padding:0 13px!important;background:rgba(79,223,255,.08)!important;color:#bff6ff!important;cursor:pointer!important}
.ff-mobile-nav>summary::-webkit-details-marker{display:none!important}
/* Critical: never force display on details panels when closed */
.ff-mobile-nav:not([open]) .ff-mobile-panel,.ff-route-dock:not([open]) .ff-route-dock-panel{display:none!important;visibility:hidden!important;pointer-events:none!important;opacity:0!important}
.ff-mobile-nav[open] .ff-mobile-panel{display:grid!important;visibility:visible!important;pointer-events:auto!important;opacity:1!important;position:fixed!important;left:12px!important;right:12px!important;top:76px!important;z-index:100020!important;max-height:calc(100vh – 92px)!important;overflow:auto!important;gap:14px!important;padding:14px!important;border:1px solid rgba(216,168,74,.45)!important;border-radius:12px!important;background:linear-gradient(180deg,rgba(7,17,28,.99),rgba(2,5,10,.99))!important;box-shadow:0 28px 80px rgba(0,0,0,.7)!important}
.ff-mobile-panel section{display:grid!important;gap:8px!important}
.ff-mobile-group-title{margin:4px 0 0!important;color:#f5cf75!important;font:900 12px/1 Inter,Arial,sans-serif!important;text-transform:uppercase!important;letter-spacing:.12em!important}
.ff-mobile-meta{border:1px solid rgba(216,168,74,.28)!important;border-radius:9px!important;padding:12px!important;color:#d8d0c3!important;background:rgba(255,255,255,.035)!important;font:800 12px/1.45 Inter,Arial,sans-serif!important}
.ff-back-top{position:fixed!important;right:18px!important;bottom:18px!important;z-index:100000!important;display:grid!important;place-items:center!important;width:44px!important;height:44px!important;border:1px solid rgba(216,168,74,.6)!important;border-radius:10px!important;background:rgba(2,5,10,.84)!important;color:#f5cf75!important;text-decoration:none!important;font:900 18px/1 Inter,Arial,sans-serif!important;box-shadow:0 18px 45px rgba(0,0,0,.44)!important}
.ff-route-dock{position:fixed!important;left:18px!important;bottom:18px!important;z-index:100000!important;font-family:Inter,Arial,Helvetica,sans-serif!important}
.ff-route-dock>summary{list-style:none!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;border:1px solid rgba(79,223,255,.5)!important;border-radius:10px!important;padding:0 14px!important;background:rgba(2,5,10,.86)!important;color:#bff6ff!important;box-shadow:0 18px 45px rgba(0,0,0,.44)!important;cursor:pointer!important;font:900 12px/1 Inter,Arial,sans-serif!important;text-transform:uppercase!important;letter-spacing:.08em!important}
.ff-route-dock>summary::-webkit-details-marker{display:none!important}
.ff-route-dock[open] .ff-route-dock-panel{display:grid!important;visibility:visible!important;pointer-events:auto!important;opacity:1!important;position:absolute!important;left:0!important;bottom:52px!important;width:min(390px,calc(100vw – 36px))!important;gap:10px!important;padding:12px!important;border:1px solid rgba(216,168,74,.45)!important;border-radius:12px!important;background:linear-gradient(180deg,rgba(7,17,28,.99),rgba(2,5,10,.99))!important;box-shadow:0 28px 80px rgba(0,0,0,.66)!important}
.ff-route-finder-title{margin:0!important;color:#f5cf75!important;font:900 11px/1 Inter,Arial,sans-serif!important;text-transform:uppercase!important;letter-spacing:.1em!important}
.ff-route-finder-list{display:grid!important;gap:8px!important;max-height:min(430px,calc(100vh – 190px))!important;overflow:auto!important;padding-right:2px!important}
.ff-route-dock-panel a{display:grid!important;gap:4px!important;border:1px solid rgba(79,223,255,.14)!important;border-radius:8px!important;padding:11px 12px!important;background:rgba(255,255,255,.035)!important;color:#f4f0e3!important;text-decoration:none!important}
.ff-route-dock-panel a:hover,.ff-route-dock-panel a:focus{border-color:rgba(245,207,117,.45)!important;background:rgba(216,168,74,.08)!important}
@media(max-width:1280px){.ff-unified-nav{gap:10px!important;padding:0 14px!important}.ff-unified-brand-text strong{font-size:20px!important}.ff-nav-group>button,.ff-nav-direct>a{padding:0 7px!important;font-size:12px!important}.ff-nav-cta{padding:0 11px!important;font-size:12px!important}}
@media(max-width:1120px){html{scroll-padding-top:84px}.ff-nav-desktop,.ff-nav-direct{display:none!important}.ff-mobile-nav{display:block!important}.ff-unified-nav{min-height:68px!important;max-height:68px!important;padding:0 12px!important}.ff-mobile-nav[open] .ff-mobile-panel{top:68px!important}.ff-unified-sigil{width:38px!important;height:38px!important}.ff-unified-sigil img{width:31px!important;height:31px!important}.ff-unified-brand-text strong{font-size:21px!important}.ff-unified-brand-text span{display:none!important}.ff-nav-cta{margin-left:auto!important;min-height:44px!important;padding:0 11px!important}.ff-skip-link:focus{top:76px!important}}
@media(max-width:560px){.ff-unified-brand-text strong{font-size:18px!important}.ff-nav-cta{display:none!important}.ff-back-top{right:12px!important;bottom:12px!important;width:44px!important;height:44px!important}.ff-route-dock{left:12px!important;bottom:12px!important}.ff-route-dock>summary{min-height:44px!important;padding:0 12px!important}.ff-route-dock[open] .ff-route-dock-panel{bottom:48px!important;width:min(320px,calc(100vw – 24px))!important}.ff-mobile-nav[open] .ff-mobile-panel{left:8px!important;right:8px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

(function(){
function closeMenus(root){
(root||document).querySelectorAll(‘.ff-nav-menu’).forEach(function(m){
m.setAttribute(‘hidden’,”);
m.style.display=”;
});
(root||document).querySelectorAll(‘.ff-nav-group>button[aria-expanded=”true”]’).forEach(function(b){
b.setAttribute(‘aria-expanded’,’false’);
});
}
function openMenu(btn){
var group=btn.closest(‘.ff-nav-group’);
if(!group) return;
closeMenus();
var menu=group.querySelector(‘.ff-nav-menu’);
if(!menu) return;
menu.removeAttribute(‘hidden’);
btn.setAttribute(‘aria-expanded’,’true’);
}
document.addEventListener(‘click’,function(e){
var btn=e.target.closest && e.target.closest(‘.ff-nav-group>button’);
if(btn){
e.preventDefault();
if(btn.getAttribute(‘aria-expanded’)===’true’){ closeMenus(); }
else { openMenu(btn); }
return;
}
if(!e.target.closest || !e.target.closest(‘.ff-nav-group’)) closeMenus();
});
document.addEventListener(‘keydown’,function(e){
if(e.key===’Escape’) closeMenus();
});
})();
Skip to main content

Find

^
.ff-cookie-notice{position:fixed!important;left:16px!important;right:16px!important;bottom:16px!important;z-index:100050!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;max-width:720px!important;margin:0 auto!important;padding:14px 16px!important;border:1px solid rgba(216,168,74,.55)!important;border-radius:12px!important;background:linear-gradient(180deg,rgba(7,17,28,.98),rgba(2,5,10,.98))!important;color:#f4f0e3!important;box-shadow:0 22px 60px rgba(0,0,0,.55)!important;font:800 13px/1.45 Inter,Arial,Helvetica,sans-serif!important}
.ff-cookie-notice[hidden]{display:none!important}
.ff-cookie-notice p{min-width:0!important;margin:0!important;flex:1 1 280px!important;color:#e9decc!important}
.ff-cookie-notice a{color:#f5cf75!important;text-decoration:underline!important;text-underline-offset:2px!important}
.ff-cookie-notice a:hover,.ff-cookie-notice a:focus{color:#fff4ce!important}
.ff-cookie-notice-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important}
/* “Cookie details” sits beside the button as a peer control, so it gets the
* same 44px comfort target rather than the 16px an 11px text link would be. */
.ff-cookie-notice-actions>a{display:inline-flex!important;align-items:center!important;min-height:44px!important}
.ff-cookie-notice button{appearance:none!important;border:1px solid rgba(216,168,74,.7)!important;border-radius:8px!important;background:rgba(216,168,74,.14)!important;color:#f5cf75!important;font:900 12px/1 Inter,Arial,sans-serif!important;padding:10px 14px!important;cursor:pointer!important;min-height:44px!important;min-width:44px!important}
.ff-cookie-notice button:hover,.ff-cookie-notice button:focus{background:rgba(216,168,74,.24)!important;color:#fff4ce!important}
.ff-cookie-notice button:focus-visible{outline:3px solid #73e7ff!important;outline-offset:2px!important}
@media(min-width:901px){.ff-cookie-notice{left:auto!important;right:16px!important;max-width:520px!important;margin:0!important}}
@media(max-width:560px){.ff-cookie-notice{left:8px!important;right:8px!important;bottom:8px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:8px 12px!important;padding:10px 12px!important;font-size:11px!important;line-height:1.35!important}.ff-cookie-notice-actions{flex-wrap:nowrap!important}.ff-cookie-notice button{padding:9px 11px!important}.ff-cookie-notice-actions>a{font-size:11px!important;white-space:nowrap!important}}
@media(max-width:360px){.ff-cookie-notice{grid-template-columns:1fr!important}.ff-cookie-notice-actions{justify-content:flex-start!important}}

(function(){
try{
var KEY=’ff_cookie_notice_v1′;
var el=document.getElementById(‘ff-cookie-notice’);
if(!el) return;
if(localStorage.getItem(KEY)===’1′){ el.setAttribute(‘hidden’,”); return; }
el.removeAttribute(‘hidden’);
var btn=document.getElementById(‘ff-cookie-accept’);
if(btn){ btn.addEventListener(‘click’,function(){ try{ localStorage.setItem(KEY,’1′); }catch(e){} el.setAttribute(‘hidden’,”); }); }
}catch(e){}
})();

⚔ /NOW ⚔

What I’m shipping right now

Updated: 2026-10-15

⚔ EFER (the Roblox game)

  • 🔨 Working on: the Clockwork construct-summon skill — split-authority animation (server owns the unit, client owns the assembly). Devlog landed Sept 29.
  • 🏛 Polishing: the Convergence hub — the social heart of the game sits at ~60% visual fidelity; the last 40% is scale, faction presence, wear, and crystal-driven light.
  • 🎯 Last shipped: the post-reset season-transition cinematic (15 seconds, documented frame-by-frame).
  • ▶ Play it: free on Roblox

🃏 EFURC TCG

  • 🌿 Just shipped: the Sylvan Confederation joined Core Wave A — hero Archdruid Eldas and Regrow are live.
  • ⚙ Next reveal: the Clockwork Dominion on Oct 10 — The Overseer and Directive complete the four-faction contrast (order, aggression, regeneration, precision).
  • 🎯 After that: the v0.2 balance pass — Regrow repriced the whole low-cost slot.

📖 The Lore Book

  • 📚 Status: v1 live on Gumroad ($9.99) — 8 chapters, 60,000 words, DRM-free.
  • 🚀 v2 launches Nov 17: two new chapters (Arctic “The Endurance”, Alliance “The Bridge”), a 55-card EFURC appendix, dev commentary, redesigned cover.
  • 🎁 Free upgrade: every v1 buyer gets v2 — so buying v1 now IS the pre-order.
  • 🔗 Lore book v2 details · 2 free chapters

👕 Faction T-Shirts

🧩 EFEMM (Essence Match Masters)

  • 🧪 What it is: the third Eternal Fusion game — match-3 + card battle on Unreal Engine 5.8, currently v0.5.4.
  • 🔧 Under the hood: a 268-test Python oracle owns the rules; 22 faction starter decks; deterministic save/replay.
  • 📋 Next up: board feel — the systems are tested, the hand-feel is the milestone.

📝 The Website (farouks-fusion.com)

  • 📊 Status: 106 published posts, ~200 routes, all quality audits green (a11y 0 violations ×394 runs, CLS 0, 0 broken links).
  • 📋 Cadence: Mon/Wed/Fri/Sun — 29 posts scheduled through Jan 1.
  • 🎯 Next up: lore-book v2 launch (Nov 17), Steam wishlists (Dec 1), press kit refresh. Full roadmap →

Want updates?

Email subscribers get a weekly digest of what shipped, what’s broken, and what’s next.

The email list goes live with the lore-book launch. Until then, the weekly digest lands first in Discord.

Join the DiscordOr email to reserve a spot

{“@context”:”https://schema.org”,”@type”:”WebPage”,”@id”:”https://farouks-fusion.com/now/”,”url”:”https://farouks-fusion.com/now/”,”name”:”/now — what I am shipping right now (live)”,”description”:”Live status of every Farouk Fusion product — the EFER Roblox game, EFURC TCG, lore book, faction T-shirts, EFEMM match-3, and the website. Updated regularly.”,”isPartOf”:{“@type”:”WebSite”,”@id”:”https://farouks-fusion.com/#website”,”name”:”Farouk Fusion”,”url”:”https://farouks-fusion.com/”}}
{“@context”:”https://schema.org”,”@type”:”BreadcrumbList”,”itemListElement”:[{“@type”:”ListItem”,”position”:1,”name”:”Home”,”item”:”https://farouks-fusion.com/”},{“@type”:”ListItem”,”position”:2,”name”:”Company”,”item”:”https://farouks-fusion.com/about-farouk-fusion/”},{“@type”:”ListItem”,”position”:3,”name”:”/now”,”item”:”https://farouks-fusion.com/now/”}]}