1<!DOCTYPE html><html lang="" data-ws-project="22124d94-d2c9-4a60-acbb-6b3f10503284" data-ws-version="30845" data-ws-last-published="2026-08-29T14:39:50.457Z"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="icon" href="/_image/w_144,q_100/assets/favicon-48x48_X2mQHbKXndGWgL2TFrWsX.png"/><link rel="preload" href="/assets/Image-Background-ArdaCraft-27_ZF1yNKx-3brQoX-5NRt9v.webp" as="image"/><link rel="preconnect" href="https://use.typekit.net"/><link rel="preconnect" href="https://p.typekit.net"/><meta name="google-site-verification" content="6bTp97en7UgYOC3lzAvIKowaOzRTbqDBGtJzY1qsMfU"/><link rel="modulepreload" href="/assets/entry.client-BiNCLkaT.js"/><link rel="modulepreload" href="/assets/chunk-4N6VE7H7-Cg8mIVGN.js"/><link rel="modulepreload" href="/assets/root-CilvbZMI.js"/><link rel="modulepreload" href="/assets/_index-BzjJZqI1.js"/><link rel="modulepreload" href="/assets/image-BrfMozFv.js"/><link rel="modulepreload" href="/assets/fragment-RiJKGpPm.js"/><link rel="modulepreload" href="/assets/_about_._index-CKrkfWUp.js"/><link rel="modulepreload" href="/assets/index-C_26nMkx.js"/><meta property="og:url" content="https://ardacraft.me/about"/><meta property="og:title" content="Our History & Project Origins"/><meta property="og:type" content="website"/><meta property="og:site_name" content="ArdaCraft"/><meta name="description" content="Discover how ArdaCraft began. Follow our journey from an ambitious concept to creating the most detailed recreation of J.R.R. Tolkien's world."/><meta property="og:description" content="Discover how ArdaCraft began. Follow our journey from an ambitious concept to creating the most detailed recreation of J.R.R. Tolkien's world."/><meta property="og:image" content="https://ardacraft.me/assets/Open-Graph-ArdaCraft-1200x630_kjlVxbKH8f2IZaYkmstkE.jpg"/><meta property="twitter:card" content="summary_large_image"/><title>Our History & Project Origins</title>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"ArdaCraft","url":"https://ardacraft.me"}</script>
1<link rel="stylesheet" href="/assets/index-Dm6jYb-h.css"/> 2 3<link rel="stylesheet" href="https://use.typekit.net/kag6rwi.css"/> 4 5<!-- --></head><body class="w-element cos19h3"><div style="display:contents"><div style="display:contents"><div darken-bg="true" class="w-element c1wt7jfi c1oltoh9 c15umh1c c9uqmb cz17h53"></div><div navbar="true" class="w-element c1oltoh9 c158s1wq c18460ip c1maocke cmre2if cl2xlqw c1l20dy0 ci5zejk c1a4d992 c1e9k3hw cypxkib chx63s8 c1e8qjia c14df0s2"><div data-homepage="footer-container" class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div nav-menu="true" class="w-element c1uz7vom cbm90qe c17waf3r c1nfwxmq czpbsl2 cwlhc2g c1q7x0a9 cc9e4b0 c4rat9s c10vq3rr cz4712c cbx8lb7 cl41tk7 c1dirdz6 c14vr5tx"><div class="w-element c1x86i13 cq512wt"><a class="w-element c1qqnmdg" href="/" data-discover="true"><img nav-logo="true" class="w-image c1t129vl ct3f834" alt="" width="1000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 16w, /_image/w_32,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 32w, /_image/w_48,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 48w, /_image/w_64,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 64w, /_image/w_96,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 96w, /_image/w_128,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 128w, /_image/w_256,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 256w, /_image/w_384,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 384w, /_image/w_640,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 640w, /_image/w_750,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 750w, /_image/w_828,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 828w, /_image/w_1080,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 1080w, /_image/w_1200,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 1200w, /_image/w_1920,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 1920w, /_image/w_2048,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png 2048w" src="/_image/w_2048,q_80/assets/ardacraft-logo-round_SlBiCrCtO12Uw2o2AEJJm.png" decoding="async" loading="lazy"/></a></div><div class="w-element c1uz7vom c1851rqr c17waf3r cbm90qe c1nujqit crll831 c75lct5"><div nav-container="true" class="w-element c1wn46uq cg6mpnv cl2xlqw c1l20dy0 cjh4jyv cx7koon c1hkiy18 c10vq3rr cz4712c cvzk9dd cjw565y csqej54 cbx8lb7"><div nav-panel="explore" class="w-element c1uz7vom c1etu3xr c17waf3r c12vpo0c c7ogkau cbx8lb7"><div class="w-element c1wn46uq c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><div class="w-element c1uz7vom c1qe7a3l c18dk4jj c1l6ozms"><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/hobbiton" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Location-item_wv07h6oBEjLQi-AdSjufT.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Hobbiton</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">The Shire, Eriador</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/isengard" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 64w, /_
5image/w_96,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Location-item-2_Cd90FHqBfRWvpa5QEvlyf.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Isengard</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Vale of Isen, Misty Mountains</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/bree" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Location-item-1_kzuaSOOTjqTTX_o240QbJ.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Bree</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Bree-land, Eriador</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a></div><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/location" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 64w, /_image/w_96,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 384w, /_image/w_640,q_80/assets/Image-Backgroun
5d-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Background-ArdaCraft-09_ELLsMO1Pb9RQiw6q5hFop.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Discover all Locations</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a></div><div class="w-element c1wn46uq c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><div class="w-element c1uz7vom c1qe7a3l c18dk4jj c1l6ozms"><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/westmarch" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cnx8q2o c1tkm9sb c3p1tny c1frqqme c1rrox41 c2fzsy6 c1czrvri" alt="" width="256" height="256" sizes="100vw" srcSet="/_image/w_16,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 16w, /_image/w_32,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 32w, /_image/w_48,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 48w, /_image/w_64,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 64w, /_image/w_96,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 96w, /_image/w_128,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 128w, /_image/w_256,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 256w, /_image/w_384,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 384w, /_image/w_640,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp 640w" src="/_image/w_640,q_80/assets/68d455272c3135bf659239d9_Neahburg-minecraft-middle-earth-lotr_(1)_j-rDnLqJBILnEeJqyQRAV.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Westmarch</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Western Rohan<br/></p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/anorien" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cnx8q2o c1tkm9sb c3p1tny c1frqqme c1rrox41 c2fzsy6 c1czrvri" alt="" width="256" height="256" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 16w, /_image/w_32,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 32w, /_image/w_48,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 48w, /_image/w_64,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 64w, /_
5image/w_96,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 96w, /_image/w_128,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 128w, /_image/w_256,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 256w, /_image/w_384,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 384w, /_image/w_640,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp 640w" src="/_image/w_640,q_80/assets/Pelandros-aerial-minecraft-middle-earth-lotr_(1)_Pvnl9IhK7pJVXd3GLjvEI.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Anórien</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Northern Gondor<br/></p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/location/the-shire" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cnx8q2o c1tkm9sb c3p1tny c1frqqme c1rrox41 c2fzsy6 c1czrvri" alt="" width="256" height="256" sizes="100vw" srcSet="/_image/w_16,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 16w, /_image/w_32,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 32w, /_image/w_48,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 48w, /_image/w_64,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 64w, /_image/w_96,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 96w, /_image/w_128,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 128w, /_image/w_256,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 256w, /_image/w_384,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 384w, /_image/w_640,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp 640w" src="/_image/w_640,q_80/assets/67cf4a783e21f4ab9d57c888_Hardbottle-Windmill-updates-minecraft-middle-earth-lotr_(1)_totcujB8D_GZkK6DI3wdV.webp" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">The Shire</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Central Eriador</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a></div><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/contributors" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Backgroun
5d-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 64w, /_image/w_96,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 384w, /_image/w_640,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Background-ArdaCraft-08__T10uQH4IiG-5qRd93XmZ.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Meet our Contributors</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a></div></div><div nav-panel="maps" class="w-element c1uz7vom c1etu3xr c17waf3r c12vpo0c c7ogkau cbx8lb7"><div class="w-element c1uz7vom c1etu3xr clxdfzs cyjoizj c1wn46uq"><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/map/server-live-map" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 256w, /_image/w_384,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 384w, /_image/w_640,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 640w, /_image/w_750,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 750w, /_image/w_828,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-Live-Map_tXy9B4Y85UrJKV1J6n6cE.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Live Server Map</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/map/middle-earth-interactive-map" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 64w, /_
5image/w_96,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 256w, /_image/w_384,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 384w, /_image/w_640,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 640w, /_image/w_750,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 750w, /_image/w_828,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-Live-Map-1_DeJw0QD1Dmq8Nfy6jIpmm.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Interactive Map</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/map" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 64w, /_image/w_96,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 256w, /_image/w_384,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 384w, /_image/w_640,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 640w, /_image/w_750,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 750w, /_image/w_828,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-All-Maps_1_f23yPLOhvOnb866lpGUeG.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">All Maps</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a></div></div><div nav-panel="learn" class="w-element c1uz7vom c1etu3xr c17waf3r c12vpo0c c7ogkau cbx8lb7"><div class="w-element c1wn46uq c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><div class="w-element c1uz7vom c1qe7a3l c18dk4jj c1l6ozms"><div class="w-element c1uz7vom"><div class="w-element cf5cbyn"><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/resources/conquest-reforged-our-modpack-for-middle-earth" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Learn-item_doplqurLYL6fbgG3VkQiL.jpg" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Conquest Reforged</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Our modpack for Middle-earth</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/resources/follow-frodos-path" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-3_uaxwztHA8IkQFCfBB-Wug.jpg" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Follow Frodo's Path</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">From the Shire to Mordor</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a></div><div class="w-element cf5cbyn"><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/resources/how-to-apply" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-1_9JOn9Fzazj2hN-0Xa-oiA.jpg" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">How to Apply</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Learn how to join our team</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a><a nav-stagger="true" nav-link="wrapper" class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe c17waf3r c9uv4ua cwry5n3 cu29a6v ccut9dl c119z9l c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw" href="/resources/gradient-guide" data-discover="true"><div class="w-element c1uz7vom c7ogkau c12vpo0c cbm90qe cjulrou"><img class="w-image cdk8ru2 c17q5ox6 ct6po2z c7mtr3j c1rrox41 c2fzsy6 c1czrvri" alt="" width="100" height="100" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg 256w" src="/_image/w_256,q_80/assets/Drop-Down-Image-Learn-item-2_jKw5oALDCty0llzjRYGYl.jpg" decoding="async" loading="lazy"/><div class="w-element"><p nav-link="title" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1iq6tjl c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Gradient Guide</p><p class="w-element ccp5xa0 c1qi35su c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Learn how to make beautiful gradients</p></div></div><div nav-link="arrow" class="w-element c1qi35su cri68x2"><div class="w-html-embed"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-[#d9b87f] opacity-0 -translate-x-4 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></div></div></a></div></div></div><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/resources" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Backgroun
5d-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 64w, /_image/w_96,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 384w, /_image/w_640,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Background-ArdaCraft-21_isEDPdNShjVrdUWg2JmwI.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Discover all Articles</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a></div></div><div nav-panel="about" class="w-element c1uz7vom c1etu3xr c17waf3r c12vpo0c c7ogkau cbx8lb7"><div class="w-element c1uz7vom c1etu3xr clxdfzs cyjoizj c1wn46uq"><a nav-stagger="true" nav-link="wrapper-img" aria-current="page" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow active" href="/about" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 64w, /_image/w_96,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 256w, /_image/w_384,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 384w, /_image/w_640,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 640w, /_image/w_750,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 750w, /_image/w_828,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-About-us_1_xf1EENLbqOG3QGpgzwsjD.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">About us</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/support-us" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 64w, /_image/w_96,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 256w, /_image/w_384,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 384w, /_image/w_640,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 640w, /_image/w_750,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 750w, /_image/w_828,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-Support-us_(1)_V34AuBoqxeD-lKcmKN_6V.jpg" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Support us</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a><a nav-stagger="true" nav-link="wrapper-img" class="w-element c1wn46uq cty523k c181wked ckmiw1q c1kg20cg ck80xjz cn655op cz6q0ow" href="/contact-us" data-discover="true"><img nav-link="image" class="w-image c1wn46uq c1rrox41 c1lo6eud" alt="" width="400" height="300" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 16w, /_image/w_32,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 32w, /_image/w_48,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 48w, /_image/w_64,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 64w, /_
5image/w_96,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 96w, /_image/w_128,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 128w, /_image/w_256,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 256w, /_image/w_384,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 384w, /_image/w_640,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 640w, /_image/w_750,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 750w, /_image/w_828,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp 828w" src="/_image/w_828,q_80/assets/Drop-Down-Image-Contact-us_zcymhhsFiVILSMVacX9pC.webp" decoding="async" loading="lazy"/><div class="w-element cg6mpnv cil0izm c1g4z546 clhwsmj"><span nav-link="title" class="w-element cte87bx cuahv1a c1eyb87b c4iflru c1qe7a3l c17nrfvn c1scp8rj c1lez5qp c1uyrt4t">Contact us</span></div><div class="w-element cg6mpnv c1k3h0ob cl2xlqw c1l20dy0 c1k693yl c158s1wq"></div></a></div></div></div><div nav-trigger="explore" class="w-element c1uz7vom cbm90qe cd212o4 c1l6ozms c18dk4jj c1851rqr czalkuk cwkjnr8 c75lct5 c14df0s2"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c11ilikl">Explore</p><div nav-chevron="true" class="w-element c1uz7vom cbm90qe cjulrou"><div class="w-html-embed c1qi35su"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 20px; height: 20px;"> 6 <path d="m6 9 6 6 6-6"></path> 7</svg></div></div></div><div nav-drop-down="true" nav-trigger="maps" class="w-element c1uz7vom cbm90qe cd212o4 c1l6ozms c18dk4jj c1851rqr czalkuk cwkjnr8 c75lct5 c14df0s2"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c11ilikl">Maps</p><div nav-chevron="true" class="w-element c1uz7vom cbm90qe cjulrou"><div class="w-html-embed c1qi35su"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 20px; height: 20px;"> 8 <path d="m6 9 6 6 6-6"></path> 9</svg></div></div></div><div nav-trigger="learn" class="w-element c1uz7vom cbm90qe cjulrou c1l6ozms c18dk4jj c1851rqr czalkuk cwkjnr8 c75lct5 c14df0s2"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c11ilikl">Learn</p><div nav-chevron="true" class="w-element c1uz7vom cbm90qe cjulrou"><div class="w-html-embed c1qi35su"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 20px; height: 20px;"> 10 <path d="m6 9 6 6 6-6"></path> 11</svg></div></div></div><div nav-trigger="about" class="w-element c1uz7vom cbm90qe cjulrou c1l6ozms c18dk4jj c1851rqr czalkuk cwkjnr8 c75lct5 c14df0s2"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c11ilikl">About</p><div nav-chevron="true" class="w-element c1uz7vom cbm90qe cjulrou"><div class="w-html-embed c1qi35su"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width: 20px; height: 20px;"> 12 <path d="m6 9 6 6 6-6"></path> 13</svg></div></div></div></div><div class="w-element c75lct5 c1x86i13"><div class="w-element c1uz7vom cyjoizj clxdfzs c1tt79v9 cd212o4"><div class="w-element ck80xjz c1uz7vom cbm90qe c4oxwb7 c75lct5"><a href="https://discord.com/invite/qcYBkCmAKZ" nav-social="true" target="_blank" class="w-element c1t129vl ct3f834 cbm90qe c4oxwb7 c1uz7vom cnx8q2o c1tkm9sb c3p1tny c1frqqme c1ka351p c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 c1qi35su ctvpapw"><div class="w-html-embed cbm90qe c4oxwb7"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 18px; height: 18px;"> 14 <path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.29a.074.074 0 0 1 .077-.01c3.927 1.793 8.18
141.793 12.061 0a.074.074 0 0 1 .077.01c.12.098.246.196.373.29a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.874.894.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.419 2.156-2.419 1.21 0 2.176 1.096 2.156 2.419 0 1.334-.956 2.419-2.156 2.419zm7.974 0c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.419 2.156-2.419 1.21 0 2.176 1.096 2.156 2.419 0 1.334-.946 2.419-2.156 2.419z"/> 15</svg></div></a><div nav-social-text="true" class="w-element cg6mpnv c1gq0yhk c1vyde7q ccut9dl cwry5n3 casrrmi cnx8q2o c1tkm9sb c3p1tny c1frqqme cjzt3gg c1kjic6h c1yhkxzc c1ka351p cjh4jyv c1uldnsa cri68x2 c1oupalw"><p class="w-element ccp5xa0 cte87bx c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c1yjr2ok">Join us on discord</p></div></div><a primary-btn="true" class="w-element cnx8q2o c1tkm9sb c3p1tny c1frqqme c1tabcfs c1uz7vom cbm90qe c4oxwb7 csd63x6 c4lc5pz c1kbf57g c12dc88q c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 ccpqtr9 c9uv4ua ct3f834 clqy92a c1h54omw ciphf6l cqolvuh c75lct5" href="/join" data-discover="true"><span class="w-element ccp5xa0 c1e5xz0k cg2r0go c1iq6tjl c1yzlqql cvrj00w csd63x6 c4lc5pz c1fkewyi cxs4t3 coboan1 c9uv4ua cwh8dci">Join our Server</span><div class="w-html-embed"><span aria-hidden="true" class="ws-particle-pen"> 16 <div class="ws-particle"></div> 17 <div class="ws-particle"></div> 18 <div class="ws-particle"></div> 19 <div class="ws-particle"></div> 20 <div class="ws-particle"></div> 21 <div class="ws-particle"></div> 22 <div class="ws-particle"></div> 23 <div class="ws-particle"></div> 24 <div class="ws-particle"></div> 25 <div class="ws-particle"></div> 26</span></div></a></div></div><button mobile-navbar-btn="true" class="w-element c1qi35su cqkd5wj c173fy1e c1lez5qp c1snm4mx c1scp8rj clw6rqe c1b32rai c1no7tga cg2f5e9 c5zmy7m cq9t2pq canr8a3 c1dirdz6 ctgqjkd c1du94ny c1khxe1t c1a9j7wt"><div class="w-html-embed cqkd5wj c17xfj3y"><div class="two-step-burger"> 27 <span></span> 28 <span></span> 29 <span></span> 30</div></div></button></div></div><div mobile-navbar-container="true" class="w-element c1bplvnv c11nmou6 c24alwg c1tdzifw ca4wox4 c5b7fr0 c17xfj3y c8r62c6 cofe6fc c1dr8jhy cqkd5wj"><div class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div class="w-element c1scp8rj c1cb1t0o c1ocytl9 c1ww7cbt c159h5cc c1gxhyxn"><div class="w-element c1scp8rj c1cb1t0o c14aukpa cca4bpb"><div class="w-element c1scp8rj c1cb1t0o c1thekpe c1f2x7xh"><div href="/location" mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg"><p class="w-element ccp5xa0 cte87bx c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Explore</p></div><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/location" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Locations</p></a><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/contributors" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Contributors</p></a></div><div class="w-element c1scp8rj c1cb1t0o c1thekpe c1f2x7xh"><div href="/location" mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg"><p class="w-element ccp5xa0 cte87bx c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Maps</p></div><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/map/middle-earth-interactive-map" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Interactive Map</p></a><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/map/server-live-map" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Live Server Map</p></a></div><div class="w-element c1scp8rj c1cb1t0o c1thekpe c1f2x7xh"><div href="/location" mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg"><p class="w-element ccp5xa0 cte87bx c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">Learn</p></div><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/resources" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Articles</p></a><a mobile-nav-stagger="true" aria-current="page" class="w-element c9uv4ua c1qqnmdg active" href="/about" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">About us</p></a></div><div class="w-element c1scp8rj c1cb1t0o c1thekpe c1f2x7xh"><div href="/location" mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg"><p class="w-element ccp5xa0 cte87bx c1uf2hoa c1ofywq3 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l">About</p></div><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/support-us" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Support us</p></a><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg" href="/contact-us" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1p0q8wx c18zr17c">Contact us</p></a></div></div><a mobile-nav-stagger="true" class="w-element c9uv4ua c1qqnmdg c1scp8rj c1lez5qp c1uyrt4t c1thekpe c1f2x7xh" href="/join" data-discover="true"><p class="w-element ccp5xa0 cte87bx c1xa3wqc c984p2x cg2r0go c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1yjr2ok c1p0q8wx c18zr17c">Join our Server</p><hr class="w-element c14wyfnu c1rsoh7i c3dbpcg c1ccl4po c125ke3y c1wn46uq c1igm2uw c1r9z6ml c7ji9jo cx16f77 c13irkzz"/></a></div></div></div></div></div></div><div style="display:contents"><div style="display:contents"><div class="w-html-embed c18kn0sj"><style id="css-navbar"> 31 32 /* ========================================= 33 NAVIGATION SCROLL & MENU RADIUS 34 ========================================= */ 35 [navbar="true"] { 36 /* CHANGED: must sit above the mobile menu panel (z-index: 50), or the 37 collapsed clip-path circle paints over the burger icon. */ 38 z-index: 100; 39 40 transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1); 41 will-change: transform; 42 } 43 44 [navbar="true"].nav-hidden { transform: translateY(-100%); } 45 46 /* Default state (top of page) */ 47 [nav-menu="true"] { 48 border-radius: 1.75rem; 49 padding: 0 0; 50 background-color: transparent; 51 border: 1px solid transparent; 52 backdrop-filter: blur(0px); 53 -webkit-backdrop-filter: blur(0px); 54 transition: padding 0.4s ease, border-radius 0.3s ease, 55 background-color 0.4s ease, border-color 0.4s ease, 56 backdrop-filter 0.4s ease; 57 } 58 59 /* `.is-hovered` replaces `:hover` â set by block 4, mouse only. */ 60 [navbar="true"].is-scrolled [nav-menu="true"], 61 [nav-menu="true"].is-hovered, 62 body:has([nav-container="true"].is-active) [nav-menu="true"] { 63 padding: 0 var(--space-sm); 64 background-color: rgba(20, 20, 20, 0.5); 65 border-color: rgba(255, 255, 255, 0.15); 66 backdrop-filter: blur(10px); 67 -webkit-backdrop-filter: blur(10px); 68 } 69 70 /* Square off the bottom corners only for the desktop dropdown */ 71 body:has([nav-container="true"].is-active) [nav-menu="true"] { 72 border-bottom-left-radius: 0 !important; 73 border-bottom-right-radius: 0 !important; 74 } 75 76 /* Cinematic blur background */ 77 [darken-bg="true"] { 78 position: fixed; inset: 0; pointer-events: none; 79 background-color: rgba(0, 0, 0, 0.6); 80 backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); 81 opacity: 0; visibility: hidden; 82 transition: opacity 0.3s ease, visibility 0.3s; 83 } 84 body:has([nav-container="true"].is-active) [darken-bg="true"], 85 body:has([mobile-navbar-container="true"].show) [darken-bg="true"] { 86 opacity: 1; visibility: visible; 87 } 88 89 [link="true"] { transition: text-shadow 0.3s ease; } 90 [link="true"] svg { transition: filter 0.3s ease; will-change: filter; } 91 92 [nav-social="true"] { 93 transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), 94 background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease; 95 will-change: transform, box-shadow, background-color; 96 } 97 [nav-social="true"] svg { transition: fill 0.3s ease, stroke 0.3s ease; } 98 99 [nav-social-text="true"] { 100 opacity: 0; visibility: hidden; transform: translateY(8px); 101 transition: opacity 0.3s cubic-bezier(0.25, 1, 0.5, 1), 102 transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), visibility 0.3s; 103 } 104 105 [nav-logo="true"] { 106 transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), filter 0.3s ease; 107 will-change: transform, filter; 108 } 109 110 /* ========================================= 111 NAV LINK & CARD BASES 112 ========================================= */ 113 [nav-link="wrapper"] { 114 transition: background-color 0.2s ease-out; 115 cursor: pointer; 116 } 117 118 [nav-link="title"] { transition: color 0.2s ease-out; } 119 120 [nav-link="arrow"] { 121 opacity: 0; 122 -webkit-backface-visibility: hidden; 123 backface-visibility: hidden; 124 transform: translateZ(0) translateX(-8px); 125 transition: opacity 0.3s ease-out, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); 126 will-change: transform, opacity; 127 } 128 129 [nav-link="wrapper-img"] { 130 border: 1px solid transparent; 131 overflow: hidden; 132 transition: border-color 0.2s ease-out; 133 cursor: pointer; 134 } 135 136 [nav-link="image"] { 137 -webkit-backface-visibility: hidden; 138 backface-visibility: hidden; 139 transform: translateZ(0) scale(1); 140 transition: transform 0.4s ease-out; 141 will-change: transform; 142 } 143 144 /* ========================================= 145 DESKTOP DROPDOWN (992px+) 146 ========================================= */ 147 @media (min-width: 992px) { 148
149 [nav-trigger] p { transition: text-shadow 0.3s ease, color 0.3s ease; } 150 151 [nav-chevron="true"] { 152 transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), filter 0.3s ease; 153 transform-origin: center; 154 will-change: transform, filter; 155 } 156 157 [nav-trigger]:hover [nav-chevron="true"], 158 [nav-trigger].is-active [nav-chevron="true"] { 159 transform: rotate(180deg); 160 filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.6)) 161 drop-shadow(0 0 12px rgba(255, 255, 255, 0.3)); 162 } 163 164 [nav-trigger]:hover p, 165 [nav-trigger].is-active p { 166 text-shadow: 0 0 6px rgba(255, 255, 255, 0.6), 167 0 0 12px rgba(255, 255, 255, 0.3); 168 color: #ffffff; 169 } 170 171 [nav-container="true"] { 172 position: absolute; 173 z-index: 45; 174 width: calc(100% + 2px); 175 left: -1px; 176 top: 100%; 177 opacity: 0; 178 visibility: hidden; 179 overflow: hidden; 180 border-top-left-radius: 0; 181 border-top-right-radius: 0; 182 } 183 184 [nav-panel] { 185 position: absolute; 186 top: 0; left: 0; width: 100%; 187 display: none; 188 } 189 } 190 191 /* ========================================= 192 DESKTOP-ONLY HOVER STATES 193 ========================================= */ 194 @media (hover: hover) and (pointer: fine) { 195 [link="true"]:hover { 196 text-shadow: 0 0 8px rgba(255, 255, 255, 0.8), 197 0 0 16px rgba(255, 255, 255, 0.4); 198 } 199 [link="true"]:hover svg { 200 filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.8)) 201 drop-shadow(0 0 16px rgba(255, 255, 255, 0.4)); 202 } 203 [nav-social="true"]:hover { 204 transform: scale(0.95); 205 box-shadow: 0 0 15px rgba(255, 255, 255, 0.4); 206 } 207 [nav-social="true"]:hover ~ [nav-social-text="true"] { 208 opacity: 1; visibility: visible; transform: translateY(0); 209 } 210 [nav-logo="true"]:hover { 211 transform: scale(0.96); 212 filter: drop-shadow(0 0 8px var(--color-accent-2)) 213 drop-shadow(0 0 24px var(--color-accent-2)); 214 } 215 216 [nav-link="wrapper"]:hover { background-color: var(--color-dark-grey); } 217 [nav-link="wrapper"]:hover [nav-link="title"] { color: var(--color-accent-1); } 218 [nav-link="wrapper"]:hover [nav-link="arrow"] { 219 opacity: 1; transform: translateZ(0) translateX(0); 220 } 221 222 [nav-link="wrapper-img"]:hover { border-color: var(--color-accent-1); } 223 [nav-link="wrapper-img"]:hover [nav-link="image"] { 224 transform: translateZ(0) scale(1.04); 225 } 226 [nav-link="wrapper-img"]:hover [nav-link="title"] { color: var(--color-accent-1); } 227 } 228 229 /* ========================================= 230 MOBILE BURGER BUTTON 231 ========================================= 232 Mobile-only, so Webstudio's own display rule keeps it hidden on desktop. 233 234 CHANGED: `background-color: transparent !important` removed. Style the 235 button freely in the designer now â though you may not need to, since the 236 collapsed menu circle already sits behind it. 237 */ 238 @media (max-width: 991px) { 239 240 button[mobile-navbar-btn="true"] { 241 z-index: 60 !important; 242 243 display: inline-flex !important; 244 align-items: center; 245 justify-content: center; 246 padding: 0 !important; 247 line-height: 0; 248 } 249 250 .two-step-burger { 251 flex: 0 0 auto; 252 margin: 0 auto; 253 } 254 255 } 256 257 /* ========================================= 258 MOBILE MAIN CONTAINER 259 ========================================= 260 CHANGED: the clip-path origin is now driven by --burger-x / --burger-y / 261 --burger-r, which block 4 measures from the button's real box. The old 262 hardcoded values remain as fallbacks if the JS never runs. 263 */ 264 [mobile-navbar-container="true"] { 265 position: fixed; 266 top: 0; 267 left: 0; 268 width: 100vw; 269 height: 100dvh; 270 z-index: 50; 271 background-color: rgba(21, 21, 21, 0.9); 272 background-color: color-mix( 273 in srgb, 274 var(--color-black) 90%, 275 transparent 276 ); 277 278 clip-path: circle( 279 var(--burger-r, 20px) 280 at var(--burger-x, calc(100% - 2rem - 20px)) 281 var(--burger-y, calc(1.5rem + 20px)) 282 ); 283 284 transition: clip-path 0.5s cubic-bezier(0.16, 1, 0.3, 1); 285 pointer-events: none; 286 287 overflow-y: auto; 288 overscroll-behavior: contain; 289 padding-top: 6rem; 290 } 291 292 [mobile-navbar-container="true"].show { 293 background-color: var(--color-black); 294 295 clip-path: circle( 296 150% 297 at var(--burger-x, calc(100% - 2rem - 20px)) 298 var(--burger-y, calc(1.5rem + 20px)) 299 ); 300 pointer-events: auto; 301 } 302 303 /* Set by block 4 while it repositions, so the circle does not animate 304 across the screen every time you scroll. */ 305 [mobile-navbar-container="true"].is-repositioning { 306 transition: none !important; 307 } 308 309 /* ========================================= 310 MOBILE CONTENT VISIBILITY (GSAP) 311 ========================================= */ 312 [mobile-nav-stagger="true"] { 313 opacity: 0; 314 visibility: hidden; 315 } 316 317 /* ========================================= 318 MOBILE BURGER ANIMATION 319 ========================================= */ 320 .two-step-burger { 321 width: 24px; height: 24px; position: relative; 322 cursor: pointer; color: inherit; 323 } 324 325 .two-step-burger span { 326 display: block; position: absolute; 327 height: 2px; width: 18px; 328 background: currentColor; border-radius: 2px; 329 left: 3px; 330 will-change: top, transform, opacity; 331 pointer-events: none; 332 } 333 334 /* Tops of 3/11/19 give bar centres of 4/12/20 in a 24px box. */ 335 .two-step-burger span:nth-child(1) { 336 top: 3px; 337 transition: top 0.2s ease-in-out 0.2s, transform 0.2s ease-in-out 0s; 338 } 339 .two-step-burger span:nth-child(2) { 340 top: 11px; 341 transition: opacity 0.2s ease-in-out 0.2s; 342 } 343 .two-step-burger span:nth-child(3) { 344 top: 19px; 345 transition: top 0.2s ease-in-out 0.2s, transform 0.2s ease-in-out 0s; 346 } 347 348 [mobile-navbar-btn="true"].active span:nth-child(1), 349 .two-step-burger.active span:nth-child(1) { 350 top: 11px; transform: rotate(45deg); 351 transition: top 0.2s ease-in-out 0s, transform 0.2s ease-in-out 0.2s; 352 } 353 [mobile-navbar-btn="true"].active span:nth-child(2), 354 .two-step-burger.active span:nth-child(2) { 355 opacity: 0; 356 transition: opacity 0.2s ease-in-out 0s; 357 } 358 [mobile-navbar-btn="true"].active span:nth-child(3), 359 .two-step-burger.active span:nth-child(3) { 360 top: 11px; transform: rotate(-45deg); 361 transition: top 0.2s ease-in-out 0s, transform 0.2s ease-in-out 0.2s; 362 } 363 364 /* ========================================= 365 MOBILE SIBLING ACCORDION 366 ========================================= */ 367 @media (max-width: 991px) { 368 [mobile-navbar-container="true"] [nav-trigger] { cursor: pointer; } 369 [mobile-navbar-container="true"] [nav-panel] { 370 overflow: hidden; height: 0; opacity: 0; visibility: hidden; 371 width: 100%; display: flex; 372 } 373 [mobile-navbar-arrow="true"] { 374 display: inline-flex; 375 transition: transform 0.3s ease; 376 transform-origin: center; 377 } 378 [mobile-navbar-container="true"] [nav-trigger].is-open [mobile-navbar-arrow="true"] { 379 transform: rotate(180deg); 380 } 381 } 382 /* Keep the mobile navbar row above the expanding menu layer. */ 383 @media (max-width: 991px) {
384 [nav-menu="true"] { 385 position: relative; 386 z-index: 60; 387 } 388 389 button[mobile-navbar-btn="true"] { 390 z-index: 61 !important; 391 } 392 393 /* Do not blur the expanding black circle through the navbar glass. */ 394 body:has([mobile-navbar-container="true"].show) [nav-menu="true"] { 395 background-color: transparent !important; 396 border-color: transparent !important; 397 backdrop-filter: none !important; 398 -webkit-backdrop-filter: none !important; 399 } 400 } 401 402</style> 403</div><div class="w-html-embed">
403<script id="js-navbar" type="01ecff90265c30195d8b6777-text/javascript"> 404(function () { 405 "use strict"; 406 407 /* ------------------------------------------------------------------ 408 * Shared Webstudio / React hydration gate 409 * ------------------------------------------------------------------ 410 * 411 * Navbar JS is the first custom script in the production document, so it 412 * owns the shared gate. `load` plus a couple of frames is not sufficient: 413 * React can still be hydrating the Webstudio document at that point. 414 */ 415 window.wsAfterHydration = window.wsAfterHydration || new Promise(function (resolve) { 416 var settled = false; 417 var pollingStartedAt = 0; 418 var reactContainerKey = null; 419 var FALLBACK_DELAY = 2500; 420 421 function finish() { 422 if (settled) return; 423 settled = true; 424 425 requestAnimationFrame(function () { 426 requestAnimationFrame(resolve); 427 }); 428 } 429 430 function reactHydrationComplete() { 431 if (!reactContainerKey) { 432 reactContainerKey = Object.getOwnPropertyNames(document) 433 .find(function (name) { 434 return name.indexOf('__reactContainer$') === 0; 435 }) || null; 436 } 437 438 if (!reactContainerKey) return false; 439 440 var fiber = document[reactContainerKey]; 441 var root = fiber && 442 (fiber.stateNode || (fiber.return && fiber.return.stateNode)); 443 444 if (!root || !root.current) return false; 445 446 var state = root.current.memoizedState; 447 448 return !!state && 449 state.isDehydrated === false && 450 root.pendingLanes === 0; 451 } 452 453 function check() { 454 if (!pollingStartedAt) pollingStartedAt = performance.now(); 455 456 if (reactHydrationComplete() || 457 performance.now() - pollingStartedAt >= FALLBACK_DELAY) { 458 finish(); 459 return; 460 } 461 462 requestAnimationFrame(check); 463 } 464 465 if (document.readyState === 'complete') { 466 check(); 467 } else { 468 window.addEventListener('load', check, { once: true }); 469 } 470 }); 471 472 if (window.wsNavMasterInitialized) return; 473 window.wsNavMasterInitialized = true; 474 475 var activeIndex = -1; 476 var menuTimeout; 477 478 /* ------------------------------------------------------------------ 479 * Burger element helpers 480 * ---------------------------------------------------------------- */ 481 482 function burgerRoots() { 483 return Array.prototype.filter.call( 484 document.querySelectorAll('[mobile-navbar-btn="true"]'), 485 function (el) { 486 return !( 487 el.parentElement && 488 el.parentElement.closest('[mobile-navbar-btn="true"]') 489 ); 490 } 491 ); 492 } 493 494 function allBurgerElements() { 495 return document.querySelectorAll('[mobile-navbar-btn="true"]'); 496 } 497 498 function setBurgerActive(isActive) { 499 allBurgerElements().forEach(function (el) { 500 el.classList.toggle('active', isActive); 501 el.setAttribute('aria-expanded', isActive ? 'true' : 'false'); 502 }); 503 } 504 505 /* ------------------------------------------------------------------ 506 * NEW â keep the menu's clip-path circle centred on the burger 507 * ---------------------------------------------------------------- */ 508 509 var originFrame = null; 510 511 function syncBurgerOrigin() { 512 var container = document.querySelector('[mobile-navbar-container="true"]'); 513 var btn = document.querySelector('button[mobile-navbar-btn="true"]') || 514 document.querySelector('[mobile-navbar-btn="true"]'); 515 516 if (!container || !btn) return; 517 518 /* Never move the origin mid-animation. */ 519 if (container.classList.contains('show')) return; 520 521 var r = btn.getBoundingClientRect(); 522 523 /* Zero box means hidden (desktop) â keep the last known values. */ 524 if (!r.width || !r.height) return; 525 526 var x = Math.round(r.left + r.width / 2); 527 var y = Math.round(r.top + r.height / 2); 528 var radius = Math.round(Math.max(r.width, r.height) / 2); 529 530 if (container.dataset.originX === String(x) && 531 container.dataset.originY === String(y) && 532 container.dataset.originR === String(radius)) { 533 return; 534 } 535 536 container.dataset.originX = x; 537 container.dataset.originY = y;
538 container.dataset.originR = radius; 539 540 /* Suppress the 0.5s clip-path transition for this write only. */ 541 container.classList.add('is-repositioning'); 542 543 container.style.setProperty('--burger-x', x + 'px'); 544 container.style.setProperty('--burger-y', y + 'px'); 545 container.style.setProperty('--burger-r', radius + 'px'); 546 547 requestAnimationFrame(function () { 548 container.classList.remove('is-repositioning'); 549 }); 550 } 551 552 function scheduleOriginSync() { 553 if (originFrame !== null) return; 554 555 originFrame = requestAnimationFrame(function () { 556 originFrame = null; 557 syncBurgerOrigin(); 558 }); 559 } 560 561 var originTrackingFrame = null; 562 var originTrackingUntil = 0; 563 564 /* The scrolled navbar state moves the burger with a 0.4s CSS transition. 565 A single scroll event only captures the transition's starting position, 566 so keep measuring until the burger has reached its final position. */ 567 function trackBurgerOrigin(duration) { 568 originTrackingUntil = Math.max( 569 originTrackingUntil, 570 performance.now() + (duration || 500) 571 ); 572 573 if (originTrackingFrame !== null) return; 574 575 function track(now) { 576 syncBurgerOrigin(); 577 578 if (now < originTrackingUntil) { 579 originTrackingFrame = requestAnimationFrame(track); 580 return; 581 } 582 583 originTrackingFrame = null; 584 syncBurgerOrigin(); 585 } 586 587 originTrackingFrame = requestAnimationFrame(track); 588 } 589 590 /* Public hook used by page-specific entrance animations. */ 591 window.wsSyncBurgerOrigin = scheduleOriginSync; 592 593 /* ------------------------------------------------------------------ 594 * Scroll lock helpers (Lenis-aware) 595 * ---------------------------------------------------------------- */ 596 597 function lockPageScroll() { 598 if (window.lenis) { 599 window.lenis.stop(); 600 } else { 601 document.body.style.overflow = 'hidden'; 602 } 603 } 604 605 function unlockPageScroll() { 606 if (window.lenis) window.lenis.start(); 607 document.body.style.overflow = ''; 608 } 609 610 /* ------------------------------------------------------------------ 611 * Mouse-only hover state for the nav menu 612 * ---------------------------------------------------------------- */ 613 614 function bindNavMenuHover() { 615 document.querySelectorAll('[nav-menu="true"]').forEach(function (menu) { 616 if (menu.dataset.navHoverBound === 'true') return; 617 menu.dataset.navHoverBound = 'true'; 618 619 menu.addEventListener('pointerenter', function (e) { 620 if (e.pointerType !== 'mouse') return; 621 menu.classList.add('is-hovered'); 622 }); 623 624 menu.addEventListener('pointerleave', function (e) { 625 if (e.pointerType !== 'mouse') return; 626 menu.classList.remove('is-hovered'); 627 }); 628 629 menu.addEventListener('pointercancel', function () { 630 menu.classList.remove('is-hovered'); 631 }); 632 633 menu.addEventListener('touchstart', function () { 634 menu.classList.remove('is-hovered'); 635 }, { passive: true }); 636 }); 637 } 638 639 function clearNavMenuHover() { 640 document.querySelectorAll('[nav-menu="true"]').forEach(function (menu) { 641 menu.classList.remove('is-hovered'); 642 }); 643 } 644 645 /* ------------------------------------------------------------------ 646 * Close helpers 647 * ---------------------------------------------------------------- */ 648 649 window.wsCloseMobileMenu = function () { 650 var container = document.querySelector('[mobile-navbar-container="true"]'); 651 652 setBurgerActive(false); 653 654 if (container) { 655 container.classList.remove('show'); 656 657 var mobileStaggers = container.querySelectorAll('[mobile-nav-stagger="true"]'); 658 if (mobileStaggers.length) { 659 gsap.killTweensOf(mobileStaggers); 660 gsap.set(mobileStaggers, { autoAlpha: 0, y: 15 }); 661 } 662 } 663 664 unlockPageScroll(); 665 clearNavMenuHover(); 666 667 document.querySelectorAll('[mobile-navbar-container="true"] [nav-trigger]') 668 .forEach(function (trigger) { trigger.classList.remove('is-open'); }); 669 670 document.querySelectorAll('[mobile-navbar-container="true"] [nav-panel]') 671 .forEach(function (menu) { 672 gsap.set(menu, { height: 0, opacity: 0, visibility: 'hidden' }); 673 }); 674 }; 675 676 /* Instant, tweenless reset. State and inline styles can never drift. */ 677 function resetDesktopMenu() { 678 clearTimeout(menuTimeout); 679 activeIndex = -1; 680 681 document.querySelectorAll('[nav-trigger]').forEach(function (t) { 682 t.classList.remove('is-active'); 683 }); 684 685 document.querySelectorAll('[nav-panel]').forEach(function (p) { 686 gsap.killTweensOf(p); 687 gsap.set(p, { display: 'none', x: 0, opacity: 0 }); 688 }); 689 690 var staggers = document.querySelectorAll('[nav-stagger="true"]'); 691 if (staggers.length) { 692 gsap.killTweensOf(staggers); 693 gsap.set(staggers, { opacity: 0, y: 15 }); 694 } 695 696 var container = document.querySelector('[nav-container="true"]'); 697 if (!container) return; 698 699 gsap.killTweensOf(container); 700 container.classList.remove('is-active'); 701 gsap.set(container, { height: 0, opacity: 0, visibility: 'hidden' }); 702 } 703 704 function closeDesktopMenu() { 705 activeIndex = -1; 706 707 var container = document.querySelector('[nav-container="true"]'); 708 if (!container) return; 709 710 container.classList.remove('is-active'); 711 712 document.querySelectorAll('[nav-trigger]').forEach(function (t) { 713 t.classList.remove('is-active'); 714 }); 715 716 gsap.killTweensOf(container); 717 718 gsap.to(container, { 719 height: 0, 720 opacity: 0, 721 duration: 0.3, 722 ease: 'power2.out', 723 onComplete: function () { 724 gsap.set(container, { visibility: 'hidden' }); 725 726 document.querySelectorAll('[nav-panel]').forEach(function (p) { 727 gsap.set(p, { display: 'none' }); 728 }); 729 730 var staggers = document.querySelectorAll('[nav-stagger="true"]'); 731 if (staggers.length) gsap.set(staggers, { opacity: 0, y: 15 }); 732 } 733 }); 734 } 735 736 /* ------------------------------------------------------------------ 737 * Desktop dropdown 738 * ---------------------------------------------------------------- */ 739 740 function bindDesktop() { 741 var triggers = Array.from(document.querySelectorAll('[nav-trigger]')); 742 var container = document.querySelector('[nav-container="true"]'); 743 744 if (!container || container.dataset.bound === 'true') return; 745 container.dataset.bound = 'true'; 746 747 container.addEventListener('mouseenter', function () { 748 clearTimeout(menuTimeout); 749 }); 750 751 container.addEventListener('mouseleave', function () { 752 menuTimeout = setTimeout(closeDesktopMenu, 350); 753 }); 754
755 triggers.forEach(function (trigger, index) { 756 trigger.addEventListener('pointerenter', function (e) { 757 if (e.pointerType !== 'mouse') return; 758 if (window.innerWidth <= 991) return; 759 760 clearTimeout(menuTimeout); 761 762 var targetId = trigger.getAttribute('nav-trigger'); 763 var newPanel = document.querySelector('[nav-panel="' + targetId + '"]'); 764 if (!newPanel) return; 765 766 var isOpen = container.classList.contains('is-active'); 767 768 if (activeIndex === index && isOpen) return; 769 if (!isOpen) activeIndex = -1; 770 771 container.classList.add('is-active'); 772 773 triggers.forEach(function (t) { t.classList.remove('is-active'); }); 774 trigger.classList.add('is-active'); 775 776 gsap.killTweensOf(container); 777 gsap.killTweensOf(newPanel); 778 779 if (activeIndex === -1) { 780 document.querySelectorAll('[nav-panel]').forEach(function (p) { 781 if (p !== newPanel) gsap.set(p, { display: 'none' }); 782 }); 783 784 gsap.set(newPanel, { display: 'flex', opacity: 1, x: 0, height: 'auto' }); 785 gsap.set(container, { visibility: 'visible' }); 786 787 gsap.to(container, { 788 height: newPanel.offsetHeight, 789 opacity: 1, 790 duration: 0.3, 791 ease: 'power2.out' 792 }); 793 794 var staggers = newPanel.querySelectorAll('[nav-stagger="true"]'); 795 if (staggers.length) { 796 gsap.killTweensOf(staggers); 797 gsap.fromTo( 798 staggers, 799 { opacity: 0, y: 15 }, 800 { opacity: 1, y: 0, stagger: 0.05, duration: 0.35, ease: 'power2.out' } 801 ); 802 } 803 } else { 804 var direction = index > activeIndex ? 1 : -1; 805 var oldTrigger = triggers[activeIndex]; 806 var oldPanel = oldTrigger 807 ? document.querySelector('[nav-panel="' + oldTrigger.getAttribute('nav-trigger') + '"]') 808 : null; 809 810 gsap.set(newPanel, { 811 display: 'flex', height: 'auto', 812 x: direction * 40, opacity: 0 813 }); 814 815 var staggers2 = newPanel.querySelectorAll('[nav-stagger="true"]'); 816 if (staggers2.length) { 817 gsap.killTweensOf(staggers2); 818 gsap.set(staggers2, { opacity: 1, y: 0 }); 819 } 820 821 gsap.set(container, { visibility: 'visible' }); 822 823 gsap.to(container, { 824 height: newPanel.offsetHeight, 825 opacity: 1, 826 duration: 0.3, 827 ease: 'power2.out' 828 }); 829 830 if (oldPanel && oldPanel !== newPanel) { 831 gsap.killTweensOf(oldPanel); 832 gsap.to(oldPanel, { 833 x: -direction * 40, opacity: 0, 834 duration: 0.3, ease: 'power2.out', 835 onComplete: function () { 836 gsap.set(oldPanel, { display: 'none', x: 0 }); 837 } 838 }); 839 } 840 841 gsap.to(newPanel, { x: 0, opacity: 1, duration: 0.3, ease: 'power2.out' }); 842 } 843 844 activeIndex = index; 845 }); 846 847 trigger.addEventListener('pointerleave', function (e) { 848 if (e.pointerType !== 'mouse') return; 849 if (window.innerWidth <= 991) return; 850 menuTimeout = setTimeout(closeDesktopMenu, 350); 851 }); 852 }); 853 } 854 855 /* ------------------------------------------------------------------ 856 * Mobile burger 857 * ---------------------------------------------------------------- */ 858 859 function bindBurger() {
860 burgerRoots().forEach(function (btn) { 861 if (btn.dataset.navBound === 'true') return; 862 btn.dataset.navBound = 'true'; 863 864 btn.setAttribute('aria-expanded', 'false'); 865 866 btn.addEventListener('click', function (e) { 867 e.preventDefault(); 868 e.stopImmediatePropagation(); 869 870 clearNavMenuHover(); 871 872 if (btn.classList.contains('active')) { 873 window.wsCloseMobileMenu(); 874 return; 875 } 876 877 /* Make sure the expand starts from where the icon is NOW. */ 878 syncBurgerOrigin(); 879 880 setBurgerActive(true); 881 882 var mobileContainer = document.querySelector('[mobile-navbar-container="true"]'); 883 if (!mobileContainer) return; 884 885 mobileContainer.setAttribute('data-lenis-prevent', ''); 886 mobileContainer.classList.add('show'); 887 888 lockPageScroll(); 889 890 var mobileStaggers = mobileContainer.querySelectorAll('[mobile-nav-stagger="true"]'); 891 if (!mobileStaggers.length) return; 892 893 gsap.killTweensOf(mobileStaggers); 894 gsap.fromTo( 895 mobileStaggers, 896 { autoAlpha: 0, y: 15 }, 897 { 898 autoAlpha: 1, y: 0, 899 duration: 0.4, stagger: 0.06, 900 ease: 'power2.out', delay: 0.25 901 } 902 ); 903 }, true); 904 }); 905 } 906 907 /* Webstudio changes routes without unloading the document. Close the 908 mobile menu before its destination activates so Lenis cannot remain 909 stopped on the next page. */ 910 function bindMobileNavigationCleanup() { 911 document.querySelectorAll('[mobile-navbar-container="true"]') 912 .forEach(function (container) { 913 if (container.dataset.navCleanupBound === 'true') return; 914 container.dataset.navCleanupBound = 'true'; 915 916 container.addEventListener('click', function (e) { 917 if (window.innerWidth > 991) return; 918 919 var destination = e.target.closest('a[href], [href]'); 920 if (!destination) return; 921 922 /* Accordion triggers control panels rather than routes. */ 923 if (destination.closest('[nav-trigger]')) return; 924 925 window.wsCloseMobileMenu(); 926 }, true); 927 }); 928 } 929 930 /* ------------------------------------------------------------------ 931 * Mobile accordion 932 * ---------------------------------------------------------------- */ 933 934 function bindMobileAccordion() { 935 document.querySelectorAll('[mobile-navbar-container="true"] [nav-trigger]') 936 .forEach(function (trigger) { 937 if (trigger.dataset.navBound === 'true') return; 938 trigger.dataset.navBound = 'true'; 939 940 trigger.addEventListener('click', function (e) { 941 if (window.innerWidth > 991) return; 942 943 e.preventDefault(); 944 e.stopImmediatePropagation(); 945 946 var targetId = trigger.getAttribute('nav-trigger'); 947 var menu = document.querySelector( 948 '[mobile-navbar-container="true"] [nav-panel="' + targetId + '"]' 949 ); 950 if (!menu) return; 951 952 var isOpen = trigger.classList.contains('is-open'); 953 gsap.killTweensOf(menu); 954 955 if (isOpen) { 956 trigger.classList.remove('is-open'); 957 gsap.to(menu, { 958 height: 0, opacity: 0, 959 duration: 0.4, ease: 'power2.out', 960 onComplete: function () { 961 gsap.set(menu, { visibility: 'hidden' }); 962 } 963 }); 964 } else { 965 trigger.classList.add('is-open'); 966 gsap.set(menu, { visibility: 'visible' }); 967 gsap.fromTo( 968 menu, 969 { height: 0, opacity: 0 }, 970 { height: 'auto', opacity: 1, duration: 0.4, ease: 'power2.out' } 971 ); 972 } 973 }, true); 974 }); 975 } 976 977 function bindNavbarInteractions() { 978 bindNavMenuHover(); 979 bindDesktop(); 980 bindBurger(); 981 bindMobileNavigationCleanup(); 982 bindMobileAccordion(); 983 scheduleOriginSync(); 984 } 985 986 /* ------------------------------------------------------------------ 987 * Hydration-safe initial binding and batched mutation observer 988 * ---------------------------------------------------------------- */ 989 990 var rebindScheduled = false;
991 var navObserver = null; 992 993 function startNavbarObserver() { 994 if (navObserver) return; 995 996 navObserver = new MutationObserver(function (mutations) { 997 var hasAdded = mutations.some(function (m) { 998 return m.addedNodes.length > 0; 999 }); 1000 if (!hasAdded || rebindScheduled) return; 1001 1002 rebindScheduled = true; 1003 1004 requestAnimationFrame(function () { 1005 rebindScheduled = false; 1006 bindNavbarInteractions(); 1007 }); 1008 }); 1009 1010 navObserver.observe(document.body, { childList: true, subtree: true }); 1011 } 1012 1013 function initializeNavbar() { 1014 bindNavbarInteractions(); 1015 startNavbarObserver(); 1016 } 1017 1018 /* DOMContentLoaded can fire while React is still hydrating. Mutating 1019 classes, datasets or inline GSAP styles at that point can make the 1020 server and client trees disagree. */ 1021 if (window.wsAfterHydration && 1022 typeof window.wsAfterHydration.then === 'function') { 1023 window.wsAfterHydration.then(initializeNavbar); 1024 } else if (document.readyState === 'complete') { 1025 requestAnimationFrame(initializeNavbar); 1026 } else { 1027 window.addEventListener('load', function () { 1028 requestAnimationFrame(initializeNavbar); 1029 }, { once: true }); 1030 } 1031 1032 window.addEventListener('load', scheduleOriginSync); 1033 1034 /* ------------------------------------------------------------------ 1035 * Scroll behaviour 1036 * ---------------------------------------------------------------- */ 1037 1038 var lastScrollY = window.scrollY; 1039 var isScrolled = false; 1040 var isHidden = false; 1041 1042 window.addEventListener('scroll', function () { 1043 var navbar = document.querySelector('[navbar="true"]'); 1044 if (!navbar) return; 1045 1046 var currentScrollY = window.scrollY; 1047 1048 var shouldBeScrolled = currentScrollY > 50; 1049 if (shouldBeScrolled !== isScrolled) { 1050 isScrolled = shouldBeScrolled; 1051 navbar.classList.toggle('is-scrolled', isScrolled); 1052 trackBurgerOrigin(450); 1053 } 1054 1055 var shouldHide = currentScrollY > lastScrollY && currentScrollY > 500; 1056 if (shouldHide !== isHidden) { 1057 isHidden = shouldHide; 1058 navbar.classList.toggle('nav-hidden', isHidden); 1059 trackBurgerOrigin(450); 1060 } 1061 1062 lastScrollY = currentScrollY; 1063 1064 /* The burger moves with the navbar â keep the circle on it. */ 1065 scheduleOriginSync(); 1066 }, { passive: true }); 1067 1068 /* ------------------------------------------------------------------ 1069 * Resize 1070 * ---------------------------------------------------------------- */ 1071 1072 var lastWidth = window.innerWidth; 1073 1074 window.addEventListener('resize', function () { 1075 scheduleOriginSync(); 1076 1077 if (window.innerWidth === lastWidth) return; 1078 1079 var wasDesktop = lastWidth > 991; 1080 var isDesktop = window.innerWidth > 991; 1081 1082 lastWidth = window.innerWidth; 1083 1084 if (wasDesktop === isDesktop) return; 1085 1086 if (isDesktop) { 1087 window.wsCloseMobileMenu(); 1088 } else { 1089 resetDesktopMenu(); 1090 } 1091 1092 bindNavbarInteractions(); 1093 }, { passive: true }); 1094 1095 /* ------------------------------------------------------------------ 1096 * History navigation 1097 * ---------------------------------------------------------------- */ 1098 1099 window.addEventListener('pagehide', function () { 1100 resetDesktopMenu(); 1101 window.wsCloseMobileMenu(); 1102 }); 1103 1104 window.addEventListener('pageshow', function () { 1105 resetDesktopMenu(); 1106 window.wsCloseMobileMenu(); 1107 clearNavMenuHover(); 1108 bindNavbarInteractions(); 1109 }); 1110})(); 1111</script>
1111</div><div data-cookie-banner="true" class="w-element cos19h3 c1oltoh9 c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw c5awtof c1kbf57g cwoxq2k calwkgt cil0izm c33h9pg cqkd5wj cln6h01 c1tdweg cbm90qe cjulrou c119z9l cwry5n3 c10msptw c1oupalw c17pj1yx ccvlyga c19ng6f c13pzss2 c1qpchza c1f6bmqy c13g0bak che0hi9 ctp5a16 c1t6kr9u"><div class="w-element"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">We use cookies to ensure you get the best experience on our website. <a class="w-element c1qi35su c32xzbx cz92tk c1gxmacj c1j9ejvd cdlctc7 cqqqcgl c1yxq9sv" href="/cookie-policy" data-discover="true">Learn more</a></p></div><div class="w-element c1uz7vom c4yd207"><div data-cookie-action="decline" class="w-element c1vyde7q ccut9dl cwry5n3 cminpwc cnjd1g9 c1lo5wo0 c16im13i c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw c119z9l"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c12zejl6 c11ilikl">Decline</p></div><div data-cookie-action="accept" class="w-element c1vyde7q ccut9dl cwry5n3 cminpwc cnjd1g9 c1lo5wo0 c16im13i cdk8ru2 c17q5ox6 ct6po2z c7mtr3j cymrtsy c119z9l c32xzbx cz92tk c1gxmacj c1j9ejvd cdlctc7 c9q5ma3 c1qv1slc"><p class="w-element ccp5xa0 coboan1 c1ofywq3 c1gtpjdp c1hi51uv c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c1yjr2ok c11ilikl">Allow Cookies</p></div></div></div><div class="w-html-embed c18kn0sj"><style id="css-global"> 1112 1113 /* ========================================= 1114 SCROLL / LAYOUT BASE 1115 ========================================= */ 1116 html { scrollbar-gutter: stable; } 1117 1118 /* Lenis recommended base styles */ 1119 html.lenis, html.lenis body { height: auto; } 1120 .lenis.lenis-smooth { scroll-behavior: auto !important; } 1121 .lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; } 1122 .lenis.lenis-stopped { overflow: hidden; } 1123 .lenis.lenis-scrolling iframe { pointer-events: none; } 1124 1125 /* ========================================= 1126 SELECTION 1127 ========================================= */ 1128 ::selection { 1129 background-color: rgb(246, 196, 128); 1130 color: rgb(21, 21, 21); 1131 } 1132 ::-moz-selection { 1133 background-color: rgb(246, 196, 128); 1134 color: rgb(21, 21, 21); 1135 } 1136 1137 /* ========================================= 1138 REVEAL ON SCROLL 1139 ========================================= */ 1140 .reveal-init { 1141 opacity: 0; 1142 transform: translateY(10px); 1143 transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 1144 transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); 1145 transition-delay: var(--delay, 0s); 1146 } 1147 .reveal-visible { 1148 opacity: 1; 1149 transform: none; /* removes the stacking context after animation */ 1150 } 1151 1152 /* ========================================= 1153 MOBILE & BASE 1154 ========================================= */ 1155 @media (max-width: 991px) { 1156 * { -webkit-tap-highlight-color: transparent; } 1157 *:focus:not(:focus-visible) { outline: none; background-color: transparent; } 1158 } 1159 1160 @supports (-webkit-touch-callout: none) { 1161 [squircle="true"] { 1162 -webkit-mask-box-image: none !important; 1163 mask-border: none !important; 1164 -webkit-mask-image: -webkit-radial-gradient(white, black) !important; 1165 } 1166 } 1167 1168 /* ========================================= 1169 CARDS 1170 CHANGED: [Card="true"] dropped everywhere â same selector as [card="true"] 1171 ========================================= */ 1172 [card="true"], [card-bg="true"] { 1173 -webkit-backface-visibility: hidden; 1174 backface-visibility: hidden; 1175 transform: translate3d(0, 0, 0); 1176 /* No CSS transition on transform here â GSAP owns it */ 1177 } 1178 1179 [card="true"] { 1180 position: relative; 1181 cursor: pointer !important; 1182 } 1183 1184 /* Spotlight glow */ 1185 [card="true"]::after { 1186 content: ""; position: absolute; inset: 0; 1187 border-radius: inherit; opacity: 0; 1188 transition: opacity 0.3s ease; pointer-events: none; z-index: 1; 1189 background: radial-gradient( 1190 800px at var(--local-x, 50%) var(--local-y, 50%), 1191 rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 40% 1192 ); 1193 } 1194 1195 /* Border highlight */ 1196 [card="true"]::before { 1197 content: ""; position: absolute; inset: 0; 1198 padding: 1px; border-radius: inherit; opacity: 0; 1199 transition: opacity 0.3s ease; pointer-events: none; z-index: 2; 1200 background: radial-gradient( 1201 400px at var(--local-x, 50%) var(--local-y, 50%), 1202 rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0) 40% 1203 ); 1204 -webkit-mask: linear-gradient(white, white) content-box, 1205 linear-gradient(white, white); 1206 -webkit-mask-composite: destination-out; 1207 mask: linear-gradient(white, white) content-box, 1208 linear-gradient(white, white); 1209 mask-composite: exclude; 1210 } 1211 1212 /* ========================================= 1213 PRIMARY BUTTON PARTICLES 1214 ========================================= */ 1215 [primary-btn="true"] { position: relative; } 1216 1217 .ws-particle-pen { 1218 position: absolute; width: 140%; aspect-ratio: 1; 1219 top: 50%; left: 50%; 1220 transform: translate(-50%, -50%); 1221 z-index: 1; opacity: 0; 1222 transition: opacity 0.15s ease-out; pointer-events: none; 1223 -webkit-mask: radial-gradient(white, rgba(255, 255, 255, 0) 65%); 1224 mask: radial-gradient(white, rgba(255, 255, 255, 0) 65%); 1225 } 1226 1227 .ws-particle { 1228 background-color: var(--color-accent-1, rgb(246, 196, 128)); 1229 aspect-ratio: 1; position: absolute; 1230 animation-play-state: paused; 1231 clip-path: polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 1232 50% 100%, 40% 60%, 0% 50%, 40% 40%); 1233 } 1234 .ws-particle:nth-child(1) { width: 0.6rem; top: 30%; left: 25%; opacity: 0.8; transform-origin: 400% -600%; animation: float-out 12s -1s infinite linear; } 1235 .ws-particle:nth-child(2) { width: 0.8rem; top: 65%; left: 75%; opacity: 0.5; transform-origin: -500% 300%; animation: float-out 15s -4s infinite reverse linear; } 1236 .ws-particle:nth-child(3) { width: 0.4rem; top: 80%; left: 40%;
1236 opacity: 0.9; transform-origin: 500% 600%; animation: float-out 9s -2s infinite linear; } 1237 .ws-particle:nth-child(4) { width: 0.9rem; top: 20%; left: 80%; opacity: 0.6; transform-origin: -300% -400%; animation: float-out 18s -6s infinite reverse linear; } 1238 .ws-particle:nth-child(5) { width: 0.5rem; top: 55%; left: 20%; opacity: 0.7; transform-origin: 600% 200%; animation: float-out 11s -3s infinite linear; } 1239 .ws-particle:nth-child(6) { width: 0.7rem; top: 85%; left: 60%; opacity: 0.8; transform-origin: -600% -500%; animation: float-out 14s -7s infinite reverse linear; } 1240 .ws-particle:nth-child(7) { width: 0.8rem; top: 25%; left: 50%; opacity: 0.4; transform-origin: 300% 500%; animation: float-out 8s -1s infinite linear; } 1241 .ws-particle:nth-child(8) { width: 0.6rem; top: 75%; left: 30%; opacity: 0.9; transform-origin: -400% 600%; animation: float-out 13s -5s infinite reverse linear; } 1242 .ws-particle:nth-child(9) { width: 0.7rem; top: 40%; left: 85%; opacity: 0.5; transform-origin: 700% -300%; animation: float-out 16s -8s infinite linear; } 1243 .ws-particle:nth-child(10) { width: 0.5rem; top: 45%; left: 45%; opacity: 0.7; transform-origin: -500% -600%; animation: float-out 10s -2s infinite reverse linear; } 1244 1245 @keyframes float-out { to { transform: rotate(360deg); } } 1246 1247 /* ========================================= 1248 SQUIRCLE & FIREFOX FALLBACK 1249 ========================================= */ 1250 [squircle="true"] { 1251 border-radius: 24px !important; 1252 overflow: hidden !important; 1253 -webkit-mask-box-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMjAwJyBoZWlnaHQ9JzIwMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48cGF0aCBkPSdNNTAsMCBDMiwwIDAsMiAwLDUwIEwwLDE1MCBDMCwxOTggMiwyMDAgNTAsMjAwIEwxNTAsMjAwIEMxOTgsMjAwIDIwMCwxOTggMjAwLDE1MCBMMjAwLDUwIEMyMDAsMiAxOTgsMCAxNTAsMCBaJy8+PC9zdmc+") 50 stretch !important; 1254 } 1255 1256 @supports (-moz-appearance: none) { 1257 [squircle="true"] { 1258 -webkit-mask-box-image: none !important; 1259 mask-border: none !important; 1260 mask-image: none !important; 1261 -webkit-mask-image: none !important; 1262 } 1263 } 1264 1265 /* ========================================= 1266 VIEW TRANSITIONS 1267 ========================================= */ 1268 @view-transition { navigation: auto; } 1269 1270 @media (prefers-reduced-motion: no-preference) { 1271 ::view-transition-old(root) { animation: vt-fade-out 0.2s ease-out both; } 1272 ::view-transition-new(root) { animation: vt-fade-in 0.4s ease-out both; } 1273 } 1274 1275 @keyframes vt-fade-out { from { opacity: 1; } to { opacity: 0; } } 1276 @keyframes vt-fade-in { from { opacity: 0; } to { opacity: 1; } } 1277 1278 /* ========================================= 1279 DESKTOP-ONLY HOVER STATES 1280 ========================================= */ 1281 @media (hover: hover) and (pointer: fine) { 1282 [card="true"]:hover::after, 1283 [card="true"]:hover::before { opacity: 1; } 1284 1285 [primary-btn="true"]:hover .ws-particle-pen { opacity: 1; } 1286 [primary-btn="true"]:hover .ws-particle { animation-play-state: running; } 1287 } 1288 1289 /* ========================================= 1290 REDUCED MOTION 1291 ========================================= */ 1292 @media (prefers-reduced-motion: reduce) { 1293 ::view-transition-group(*), 1294 ::view-transition-old(*), 1295 ::view-transition-new(*) { animation: none !important; } 1296 1297 .reveal-init { opacity: 1; transform: none; transition: none; } 1298 1299 .ws-particle { animation: none !important; } 1300 .ws-particle-pen { display: none; } 1301 } 1302</style> 1303</div><div class="w-html-embed"><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin> 1304<link rel="preconnect" href="https://unpkg.com" crossorigin> 1305
1306<script data-cfasync="false" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
vendor: 1 bytes, line 1306
1306
1307<script data-cfasync="false" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>
vendor: 1 bytes, line 1307
1307
1308<script data-cfasync="false" src="https://unpkg.com/[email protected]"></script>
vendor: 1 bytes, line 1308
1308
1309<script data-cfasync="false" src="https://unpkg.com/@studio-freight/[email protected]/dist/lenis.min.js"></script>
1309 1310
1311<script data-cfasync="false" id="js-global"> 1312(function () { 1313 "use strict"; 1314 1315 if (window.wsGlobalsInitialized) return; 1316 window.wsGlobalsInitialized = true; 1317 1318 var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1319 1320 /* Run when the browser has a spare moment, or soon regardless. */ 1321 function whenIdle(fn) { 1322 if (typeof window.requestIdleCallback === 'function') { 1323 window.requestIdleCallback(fn, { timeout: 2000 }); 1324 } else { 1325 setTimeout(fn, 300); 1326 } 1327 } 1328 1329 /* ================================================================== 1330 * 0. HYDRATION GUARD 1331 * ================================================================== 1332 * 1333 * Navbar JS normally creates this shared promise first. Keep the same 1334 * implementation here as a fallback for pages without that block. 1335 */ 1336 window.wsAfterHydration = window.wsAfterHydration || new Promise(function (resolve) { 1337 var settled = false; 1338 var pollingStartedAt = 0; 1339 var reactContainerKey = null; 1340 var FALLBACK_DELAY = 2500; 1341 1342 function finish() { 1343 if (settled) return; 1344 settled = true; 1345 1346 requestAnimationFrame(function () { 1347 requestAnimationFrame(resolve); 1348 }); 1349 } 1350 1351 function reactHydrationComplete() { 1352 if (!reactContainerKey) { 1353 reactContainerKey = Object.getOwnPropertyNames(document) 1354 .find(function (name) { 1355 return name.indexOf('__reactContainer$') === 0; 1356 }) || null; 1357 } 1358 1359 if (!reactContainerKey) return false; 1360 1361 var fiber = document[reactContainerKey]; 1362 var root = fiber && 1363 (fiber.stateNode || (fiber.return && fiber.return.stateNode)); 1364 1365 if (!root || !root.current) return false; 1366 1367 var state = root.current.memoizedState; 1368 1369 return !!state && 1370 state.isDehydrated === false && 1371 root.pendingLanes === 0; 1372 } 1373 1374 function check() { 1375 if (!pollingStartedAt) pollingStartedAt = performance.now(); 1376 1377 if (reactHydrationComplete() || 1378 performance.now() - pollingStartedAt >= FALLBACK_DELAY) { 1379 finish(); 1380 return; 1381 } 1382 1383 requestAnimationFrame(check); 1384 } 1385 1386 if (document.readyState === 'complete') { 1387 check(); 1388 } else { 1389 window.addEventListener('load', check, { once: true }); 1390 } 1391 }); 1392 1393 /* ================================================================== 1394 * 1. LENIS â desktop only, with SPA-safe cleanup 1395 * ================================================================== */ 1396 1397 var desktopLenisMedia = window.matchMedia('(min-width: 992px)'); 1398 var lenisTickerBound = false; 1399 1400 function removeLenisClasses() { 1401 document.documentElement.classList.remove( 1402 'lenis', 1403 'lenis-smooth', 1404 'lenis-scrolling', 1405 'lenis-stopped', 1406 'lenis-locked' 1407 ); 1408 } 1409 1410 function destroyLenisForNativeScroll() { 1411 if (window.lenis) { 1412 /* Clear stopped state before removing listeners and CSS classes. */ 1413 if (typeof window.lenis.start === 'function') window.lenis.start(); 1414 if (typeof window.lenis.destroy === 'function') window.lenis.destroy(); 1415 } 1416 1417 window.lenis = null; 1418 removeLenisClasses(); 1419 } 1420 1421 function bindLenisTicker() { 1422 if (lenisTickerBound || typeof window.gsap === 'undefined') return; 1423 1424 lenisTickerBound = true; 1425 1426 window.gsap.ticker.add(function (time) { 1427 /* Always use the live instance after a breakpoint change. */ 1428 if (window.lenis) window.lenis.raf(time * 1000); 1429 }); 1430 1431 window.gsap.ticker.lagSmoothing(0); 1432 } 1433 1434 function syncLenisMode() { 1435 /* Touch/mobile uses native scrolling so Chrome's address bar and SPA 1436 route changes can never inherit a stopped Lenis instance. */ 1437 if (!desktopLenisMedia.matches) { 1438 destroyLenisForNativeScroll(); 1439 return; 1440 } 1441 1442 if (!window.lenis && typeof window.Lenis !== 'undefined') { 1443 window.lenis = new window.Lenis({ 1444 duration: 0.7, 1445 easing: function (t) { return Math.min(1, 1.001 - Math.pow(2, -10 * t)); }, 1446 smoothWheel: true 1447 }); 1448 } 1449 1450 if (!window.lenis) return; 1451 1452 if (typeof window.ScrollTrigger !== 'undefined' && 1453 window.lenis.__scrollTriggerBound !== true) { 1454 window.lenis.__scrollTriggerBound = true; 1455 window.lenis.on('scroll', window.ScrollTrigger.update); 1456 } 1457 1458 bindLenisTicker(); 1459 } 1460 1461 /* Public safety hook used before Webstudio swaps SPA route content. */ 1462 window.wsRestorePageScroll = function () { 1463 document.documentElement.classList.remove('is-loading', 'hero-pending'); 1464 1465 if (desktopLenisMedia.matches) { 1466 if (window.lenis && typeof window.lenis.start === 'function') { 1467 window.lenis.start(); 1468 } 1469 } else { 1470 destroyLenisForNativeScroll(); 1471 } 1472 1473 if (document.body) document.body.style.removeProperty('overflow'); 1474 }; 1475 1476 window.wsAfterHydration.then(syncLenisMode); 1477 1478 if (typeof desktopLenisMedia.addEventListener === 'function') { 1479 desktopLenisMedia.addEventListener('change', syncLenisMode); 1480 } else { 1481 desktopLenisMedia.addListener(syncLenisMode); 1482 } 1483 1484 /* Webstudio client navigation may replace content without pagehide. */ 1485 document.addEventListener('click', function (event) { 1486 var link = event.target.closest && event.target.closest('a[href]'); 1487 if (!link || link.closest('[nav-trigger]')) return; 1488 if (link.target === '_blank' || link.hasAttribute('download')) return; 1489 1490 var href = link.getAttribute('href'); 1491 if (!href || href.charAt(0) === '#') return; 1492 1493 window.wsRestorePageScroll(); 1494 }, true); 1495 1496 window.addEventListener('popstate', window.wsRestorePageScroll); 1497 window.addEventListener('pagehide', window.wsRestorePageScroll); 1498 window.addEventListener('pageshow', function (event) { 1499 if (event.persisted) window.wsRestorePageScroll(); 1500 }); 1501 1502 /* ================================================================== 1503 * 2. COOKIE BANNER 1504 * ================================================================== */ 1505 1506 var STORAGE_KEY = 'ardacraft_consent'; 1507 1508 function runTrackingScripts() { 1509 if (window.trackingScriptsExecuted) return; 1510 window.trackingScriptsExecuted = true; 1511 1512 /* Both injections touch <head>, which React hydrates too â and both 1513 are heavy, so they wait for an idle moment as well. */ 1514 window.wsAfterHydration.then(function () { 1515 whenIdle(function () { 1516 1517 /* --- Google Analytics 4 --- */ 1518 var gaScript = document.createElement('script'); 1519 gaScript.async = true; 1520 gaScript.setAttribute('data-cfasync', 'false'); 1521 gaScript.src = 'https://www.googletagmanager.com/gtag/js?i
1521d=G-QCYHHMG0NR'; 1522 document.head.appendChild(gaScript); 1523 1524 window.dataLayer = window.dataLayer || []; 1525 window.gtag = function () { window.dataLayer.push(arguments); }; 1526 window.gtag('js', new Date()); 1527 window.gtag('config', 'G-QCYHHMG0NR'); 1528 1529 /* --- Microsoft Clarity --- */ 1530 (function (c, l, a, r, i, t, y) { 1531 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1532 t = l.createElement(r); 1533 t.async = 1; 1534 t.setAttribute('data-cfasync', 'false'); 1535 t.src = 'https://www.clarity.ms/tag/' + i; 1536 y = l.getElementsByTagName(r)[0]; 1537 y.parentNode.insertBefore(t, y); 1538 })(window, document, 'clarity', 'script', 'rcgcctk7hs'); 1539 1540 if (typeof window.clarity === 'function') { 1541 window.clarity('consentv2', { 1542 ad_Storage: 'granted', 1543 analytics_Storage: 'granted' 1544 }); 1545 } 1546 }); 1547 }); 1548 } 1549 1550 function initCookieBanner() { 1551 var banner = document.querySelector('[data-cookie-banner]'); 1552 var acceptBtn = document.querySelector('[data-cookie-action="accept"]'); 1553 var declineBtn = document.querySelector('[data-cookie-action="decline"]'); 1554 1555 var consentStatus = null; 1556 1557 try { 1558 consentStatus = localStorage.getItem(STORAGE_KEY); 1559 } catch (error) { 1560 /* Storage blocked â treat as undecided, do not crash. */ 1561 } 1562 1563 if (consentStatus === 'granted') { 1564 if (banner) banner.style.display = 'none'; 1565 runTrackingScripts(); 1566 } else if (consentStatus === 'denied') { 1567 if (banner) banner.style.display = 'none'; 1568 } else if (banner) { 1569 banner.style.display = 'flex'; 1570 } 1571 1572 function store(value) { 1573 try { 1574 localStorage.setItem(STORAGE_KEY, value); 1575 } catch (error) { 1576 /* ignore */ 1577 } 1578 } 1579 1580 if (acceptBtn) { 1581 acceptBtn.addEventListener('click', function () { 1582 store('granted'); 1583 runTrackingScripts(); 1584 if (banner) banner.style.display = 'none'; 1585 1586 if (typeof window.gtag === 'function') { 1587 window.gtag('event', 'cookie_interaction', { choice: 'allow' }); 1588 } 1589 }); 1590 } 1591 1592 if (declineBtn) { 1593 declineBtn.addEventListener('click', function () { 1594 store('denied'); 1595 if (banner) banner.style.display = 'none'; 1596 1597 window.dataLayer = window.dataLayer || []; 1598 window.dataLayer.push({ 1599 event: 'cookie_interaction', 1600 choice: 'deny' 1601 }); 1602 }); 1603 } 1604 } 1605 1606 /* ================================================================== 1607 * 3. REVEAL ON SCROLL 1608 * ================================================================== */ 1609 1610 var REVEAL_SELECTOR = '[data-appear-animation="true"]'; 1611 1612 var revealObserver = new IntersectionObserver(function (entries) { 1613 var intersecting = entries 1614 .filter(function (entry) { return entry.isIntersecting; }) 1615 .sort(function (a, b) { 1616 return a.target.getBoundingClientRect().top - 1617 b.target.getBoundingClientRect().top; 1618 }); 1619 1620 intersecting.forEach(function (entry, index) { 1621 var element = entry.target; 1622 1623 if (intersecting.length > 1) { 1624 element.style.setProperty('--delay', (index * 0.1) + 's'); 1625 } 1626 1627 element.classList.add('reveal-visible'); 1628 revealObserver.unobserve(element); 1629 }); 1630 }, { threshold: 0, rootMargin: '0px' }); 1631 1632 function observeRevealNode(node) { 1633 if (node.nodeType !== 1) return; 1634 1635 if (node.matches(REVEAL_SELECTOR) && !node.classList.contains('reveal-init')) { 1636 node.classList.add('reveal-init'); 1637 revealObserver.observe(node); 1638 } 1639
1640 node.querySelectorAll(REVEAL_SELECTOR).forEach(function (child) { 1641 if (!child.classList.contains('reveal-init')) { 1642 child.classList.add('reveal-init'); 1643 revealObserver.observe(child); 1644 } 1645 }); 1646 } 1647 1648 /* ================================================================== 1649 * 4. CARDS 1650 * ================================================================== */ 1651 1652 function bindColabCards() { 1653 document.querySelectorAll('[colab-card="true"]').forEach(function (card) { 1654 if (card.dataset.hoverBound === 'true') return; 1655 card.dataset.hoverBound = 'true'; 1656 1657 var originalBg = 'linear-gradient(rgb(43, 43, 43) 0%, rgb(21, 21, 21) 77%)'; 1658 var hoverBg = 'linear-gradient(rgb(65, 65, 65) 0%, rgb(35, 35, 35) 77%)'; 1659 1660 card.style.backgroundImage = originalBg; 1661 1662 if (reducedMotion) return; 1663 1664 card.addEventListener('mouseenter', function () { 1665 gsap.to(card, { backgroundImage: hoverBg, duration: 0.4, ease: 'power2.out' }); 1666 }); 1667 1668 card.addEventListener('mouseleave', function () { 1669 gsap.to(card, { backgroundImage: originalBg, duration: 0.4, ease: 'power2.out' }); 1670 }); 1671 }); 1672 } 1673 1674 function bindStandardCards() { 1675 /* [Card="true"] dropped â identical selector to [card="true"] */ 1676 document.querySelectorAll('[card="true"]').forEach(function (card) { 1677 if (card.dataset.hoverInitialized === 'true') return; 1678 card.dataset.hoverInitialized = 'true'; 1679 1680 /* --- Spotlight, throttled to one write per frame --- */ 1681 var pendingX = 0; 1682 var pendingY = 0; 1683 var frameQueued = false; 1684 1685 card.addEventListener('mousemove', function (e) { 1686 var rect = card.getBoundingClientRect(); 1687 pendingX = e.clientX - rect.left; 1688 pendingY = e.clientY - rect.top; 1689 1690 if (frameQueued) return; 1691 frameQueued = true; 1692 1693 requestAnimationFrame(function () { 1694 frameQueued = false; 1695 card.style.setProperty('--local-x', pendingX + 'px'); 1696 card.style.setProperty('--local-y', pendingY + 'px'); 1697 }); 1698 }); 1699 1700 /* --- Parallax on hover --- */ 1701 var bg = card.querySelector('[card-bg="true"]'); 1702 1703 if (bg && !reducedMotion) { 1704 card.addEventListener('mouseenter', function () { 1705 gsap.to(card, { scale: 0.99, duration: 0.5, ease: 'power2.out', overwrite: 'auto' }); 1706 gsap.to(bg, { scale: 1.05, duration: 0.5, ease: 'power2.out', overwrite: 'auto' }); 1707 }); 1708 1709 card.addEventListener('mouseleave', function () { 1710 gsap.to(card, { scale: 1, duration: 0.5, ease: 'power2.out', overwrite: 'auto' }); 1711 gsap.to(bg, { scale: 1, duration: 0.5, ease: 'power2.out', overwrite: 'auto' }); 1712 }); 1713 } 1714 1715 /* --- View Transitions --- */ 1716 card.addEventListener('click', function () { 1717 var slug = 1718 card.dataset.slug || 1719 (card.getAttribute('href') || '').replace(/\//g, '') || 1720 Math.random().toString(36).substring(7); 1721 1722 document.body.style.pointerEvents = 'none'; 1723 1724 gsap.killTweensOf(card); 1725 1726 if (bg) { 1727 gsap.killTweensOf(bg); 1728 bg.style.viewTransitionName = 'hero-' + slug; 1729 } 1730 1731 function release() { 1732 document.body.style.pointerEvents = ''; 1733 if (bg) bg.style.viewTransitionName = ''; 1734 } 1735 1736 var timer = setTimeout(release, 1000); 1737 1738 window.addEventListener('pagehide', function () { 1739 clearTimeout(timer); 1740 release(); 1741 }, { once: true }); 1742 }); 1743 }); 1744 } 1745 1746 /* ================================================================== 1747 * 5. BOOT + BATCHED OBSERVER 1748 * ================================================================== */ 1749 1750 function bindGlobalInteractions() { 1751 bindColabCards(); 1752 bindStandardCards(); 1753 } 1754 1755 var revealQueue = new Set(); 1756 var flushScheduled = false;
1757 var rebindQueued = false; 1758 1759 function flush() { 1760 flushScheduled = false; 1761 1762 if (rebindQueued) { 1763 rebindQueued = false; 1764 bindGlobalInteractions(); 1765 } 1766 1767 revealQueue.forEach(function (node) { 1768 if (node.isConnected) observeRevealNode(node); 1769 }); 1770 1771 revealQueue.clear(); 1772 } 1773 1774 function scheduleFlush() { 1775 if (flushScheduled) return; 1776 flushScheduled = true; 1777 requestAnimationFrame(flush); 1778 } 1779 1780 var globalObserver = null; 1781 1782 function startGlobalObserver() { 1783 if (globalObserver) return; 1784 1785 globalObserver = new MutationObserver(function (mutations) { 1786 var hasAdded = false; 1787 1788 mutations.forEach(function (mutation) { 1789 mutation.addedNodes.forEach(function (node) { 1790 if (node.nodeType !== 1) return; 1791 hasAdded = true; 1792 revealQueue.add(node); 1793 }); 1794 }); 1795 1796 if (!hasAdded) return; 1797 1798 rebindQueued = true; 1799 scheduleFlush(); 1800 }); 1801 1802 globalObserver.observe(document.body, { 1803 childList: true, 1804 subtree: true 1805 }); 1806 } 1807 1808 window.wsAfterHydration.then(function () { 1809 startGlobalObserver(); 1810 1811 /* Cheap and user-visible â runs straight away. */ 1812 initCookieBanner(); 1813 1814 /* CHANGED: heavy DOM sweeps wait for an idle moment, so they do not 1815 compete with the loader reveal and the hero intro. */ 1816 whenIdle(function () { 1817 bindGlobalInteractions(); 1818 document.querySelectorAll(REVEAL_SELECTOR).forEach(observeRevealNode); 1819 }); 1820 }); 1821 1822 /* Never leave the page unclickable after a bfcache restore. */ 1823 window.addEventListener('pageshow', function (e) { 1824 if (e.persisted) document.body.style.pointerEvents = ''; 1825 }); 1826})(); 1827</script>
1827 1828</div></div></div><div class="w-html-embed"><style> 1829/* 1. Container setup */ 1830[data-bg-grid="true"] { 1831 position: relative; 1832 overflow: hidden; 1833} 1834 1835/* 2. Static Background Grid (::before) */ 1836[data-bg-grid="true"]::before { 1837 content: ''; 1838 position: absolute; 1839 inset: 0; 1840 z-index: 0; 1841 pointer-events: none; 1842 background-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px; 1843 background-image: 1844 linear-gradient(to right, rgba(82, 82, 82, 0.05) 1px, transparent 1px), 1845 linear-gradient(to bottom, rgba(82, 82, 82, 0.05) 1px, transparent 1px), 1846 linear-gradient(to right, rgba(82, 82, 82, 0.08) 1px, transparent 1px), 1847 linear-gradient(to bottom, rgba(82, 82, 82, 0.08) 1px, transparent 1px); 1848 mask-image: radial-gradient(ellipse at center, black 20%, transparent 70%); 1849 -webkit-mask-image: radial-gradient(ellipse at center, black 20%, transparent 70%); 1850} 1851 1852/* 3. Interactive Golden Grid (::after) */ 1853[data-bg-grid="true"]::after { 1854 content: ''; 1855 position: absolute; 1856 inset: 0; 1857 z-index: 0; 1858 pointer-events: none; 1859 background-size: 200px 200px, 200px 200px, 40px 40px, 40px 40px; 1860 background-image: 1861 linear-gradient(to right, rgba(246, 196, 128, 0.1) 1px, transparent 1px), 1862 linear-gradient(to bottom, rgba(246, 196, 128, 0.1) 1px, transparent 1px), 1863 linear-gradient(to right, rgba(246, 196, 128, 0.15) 1px, transparent 1px), 1864 linear-gradient(to bottom, rgba(246, 196, 128, 0.15) 1px, transparent 1px); 1865 1866 /* Fixed mask size positioned dynamically */ 1867 mask-image: radial-gradient(400px circle at center, black, transparent); 1868 -webkit-mask-image: radial-gradient(400px circle at center, black, transparent); 1869 mask-size: 800px 800px; 1870 -webkit-mask-size: 800px 800px; 1871 mask-repeat: no-repeat; 1872 -webkit-mask-repeat: no-repeat; 1873 1874 /* Defaults to center until JS overrides */ 1875 mask-position: var(--mask-x, center) var(--mask-y, center); 1876 -webkit-mask-position: var(--mask-x, center) var(--mask-y, center); 1877 opacity: 1; 1878} 1879 1880/* Smooth return transition */ 1881[data-bg-grid="true"].is-returning::after { 1882 transition: mask-position 0.6s ease-out, -webkit-mask-position 0.6s ease-out; 1883} 1884 1885/* 4. Mobile Lock - Static center */ 1886@media (max-width: 991px) { 1887 [data-bg-grid="true"]::after { 1888 mask-size: 500px 500px; 1889 -webkit-mask-size: 500px 500px; 1890 mask-position: center; 1891 -webkit-mask-position: center; 1892 } 1893} 1894</style> 1895
1896<script type="01ecff90265c30195d8b6777-text/javascript"> 1897document.addEventListener("DOMContentLoaded", () => { 1898 const gridContainers = document.querySelectorAll('[data-bg-grid="true"]'); 1899 1900 gridContainers.forEach(container => { 1901 container.addEventListener('mousemove', (e) => { 1902 // Remove the transition class so the grid tracks the mouse instantly 1903 container.classList.remove('is-returning'); 1904 1905 const rect = container.getBoundingClientRect(); 1906 const x = e.clientX - rect.left; 1907 const y = e.clientY - rect.top; 1908 1909 // Offset by half the mask size (400px) to center it directly on the cursor 1910 container.style.setProperty('--mask-x', `${x - 400}px`); 1911 container.style.setProperty('--mask-y', `${y - 400}px`); 1912 }); 1913 1914 container.addEventListener('mouseleave', () => { 1915 // Add transition class for the smooth snap-back 1916 container.classList.add('is-returning'); 1917 1918 // Remove custom positions so it gracefully falls back to 'center' 1919 container.style.removeProperty('--mask-x'); 1920 container.style.removeProperty('--mask-y'); 1921 }); 1922 }); 1923}); 1924</script>
1924</div><div class="w-html-embed"><style> 1925 /* --- Nav Track Movement --- */ 1926 [data-timeline="nav-track"] { 1927 transition: transform 0.3s ease-out; 1928 will-change: transform; 1929 } 1930 1931 /* --- Content Milestone States --- */ 1932 [data-timeline="milestone"] { 1933 opacity: 0.4; 1934 transition: opacity 0.4s ease-out; 1935 } 1936 [data-timeline="milestone"][data-active="true"] { 1937 opacity: 1; 1938 } 1939 [data-timeline="milestone"] img { 1940 transition: transform 0.4s ease-out; 1941 } 1942 [data-timeline="milestone"][data-active="true"] img { 1943 transform: scale(1.02); 1944 } 1945 1946 /* --- Nav Item States --- */ 1947 [data-timeline="nav-item"] { 1948 transition: opacity 0.3s ease-out, transform 0.3s ease-out, color 0.3s ease-out; 1949 cursor: pointer; 1950 transform-origin: left center; 1951 } 1952 1953 /* Force inactive items AND their text children to be grey */ 1954 [data-timeline="nav-item"]:not([data-active="true"]), 1955 [data-timeline="nav-item"]:not([data-active="true"]) * { 1956 color: var(--color-grey) !important; 1957 } 1958 1959 [data-timeline="nav-item"]:hover:not([data-active="true"]), 1960 [data-timeline="nav-item"]:hover:not([data-active="true"]) * { 1961 color: var(--color-light-grey) !important; 1962 } 1963 1964 /* Active State */ 1965 [data-timeline="nav-item"][data-active="true"] { 1966 font-weight: bold !important; 1967 transform: scale(1.05); 1968 } 1969 1970 [data-timeline="nav-item"][data-active="true"], 1971 [data-timeline="nav-item"][data-active="true"] * { 1972 color: var(--color-accent-1) !important; 1973 } 1974</style> 1975
1976<script type="01ecff90265c30195d8b6777-text/javascript"> 1977 document.addEventListener('DOMContentLoaded', () => { 1978 const navTrack = document.querySelector('[data-timeline="nav-track"]'); 1979 const navItems = document.querySelectorAll('[data-timeline="nav-item"]'); 1980 const milestones = document.querySelectorAll('[data-timeline="milestone"]'); 1981 1982 if (!navTrack || !navItems.length || !milestones.length) { 1983 console.warn("ArdaCraft Timeline: Required data-timeline attributes are missing on the page."); 1984 return; 1985 } 1986 1987 const STEP_HEIGHT = 55; 1988 let scrollTarget = false; 1989 1990 navItems.forEach((item, index) => { 1991 item.addEventListener('click', (e) => { 1992 e.preventDefault(); 1993 1994 const milestone = milestones[index]; 1995 1996 if (item.getAttribute('data-active') !== 'true' && milestone) { 1997 scrollTarget = index; 1998 1999 const rect = milestone.getBoundingClientRect(); 2000 const scrollTargetTop = rect.top + window.scrollY - (window.innerHeight / 2) + (rect.height / 2); 2001 2002 window.scrollTo({ 2003 top: scrollTargetTop, 2004 behavior: 'smooth' 2005 }); 2006 2007 updateNavVisuals(index); 2008 2009 setTimeout(() => { scrollTarget = false; }, 600); 2010 } 2011 }); 2012 }); 2013 2014 function updateNavVisuals(activeIndex) { 2015 if (navTrack) { 2016 navTrack.style.transform = `translateY(-${activeIndex * STEP_HEIGHT}px)`; 2017 } 2018 2019 navItems.forEach((item, idx) => { 2020 const distance = Math.abs(idx - activeIndex); 2021 const fadeOpacity = Math.max(1 - (distance * 0.25), 0.15); 2022 item.style.opacity = fadeOpacity; 2023 2024 if (idx === activeIndex) { 2025 item.setAttribute('data-active', 'true'); 2026 milestones[idx].setAttribute('data-active', 'true'); 2027 } else { 2028 item.removeAttribute('data-active'); 2029 milestones[idx].removeAttribute('data-active'); 2030 } 2031 }); 2032 } 2033 2034 window.addEventListener('scroll', () => { 2035 if (scrollTarget !== false) return; 2036 2037 let active = 0; 2038 let minDistance = Infinity; 2039 const viewportCenter = window.innerHeight / 2; 2040 2041 milestones.forEach((milestone, index) => { 2042 const rect = milestone.getBoundingClientRect(); 2043 const milestoneCenter = rect.top + (rect.height / 2); 2044 const distance = Math.abs(viewportCenter - milestoneCenter); 2045 2046 if (distance < minDistance) { 2047 minDistance = distance; 2048 active = index; 2049 } 2050 }); 2051 2052 updateNavVisuals(active); 2053 }); 2054 2055 window.dispatchEvent(new Event('scroll')); 2056 }); 2057</script>
2057</div><div data-bg-grid="true" class="w-element c1uz7vom cbm90qe c4oxwb7 clizlvm c1mqv0cn c1uvbpdz c1a10i07 c1ucfq9c"><div class="w-element cg6mpnv c1l20dy0 cl2xlqw c1k3h0ob c1nxwqfy c1vvh2ov cho10cn clhwsmj"></div><div class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div data-appear-animation="true" class="w-element cycf3wv c1a4d992 c1e9k3hw c1uz7vom c1qe7a3l cif7a18 c1uu6edv c14df0s2"><h1 class="w-element cuahv1a c19saac5 cff5pwp c1ay1jd2 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cjfzmzy cf6n94z c1tnaazk cljhc1l">Our story starts<br/><i class="w-element cvrj00w cdos9jl">13 years ago...</i></h1></div></div></div><div data-appear-animation="true" class="w-element c1xalvxr ck80xjz clhwsmj"><div class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div class="w-element c1uz7vom cjulrou c13f9p62 c1h4xwgz ck80xjz c1tt79v9 c1gxhyxn c159h5cc c1yagboq c1p563wg"><div class="w-element c1qe7a3l cjpjkdw c1mz2fl7 ccpqtr9"><div data-timeline="nav-track" class="w-element c1uz7vom c1uu6edv cif7a18 c1qe7a3l"><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2013</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2014</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2015</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2016</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2017</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2018</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2019</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2020</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2021</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2022</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2023</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2024</p></a><a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">2025</p></a>
2057<a data-timeline="nav-item" class="w-element c1uz7vom cbm90qe cjulrou c7ogkau c12vpo0c c1e9k3hw c9uv4ua" href="#"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cr9s7iz">Today</p></a></div></div><div class="w-element c1uz7vom c1qe7a3l c1tdweg cln6h01"><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1920" height="1080" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(12)_omDZC1T4L238tXKI_LjRJ.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Our founder Fornad began his map of Middle-earth in WorldPainter, initially working alone.<br/><br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1920" height="1003" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(1)_2fWmP3U1PL0nNQGRzhyRt.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">In a quiet corner of the internet, Fornad and a group of friends decided to bring Middle-earth to life, Starting in the peaceful Shire. This fellowship of skilled artists embarked on an ambitious journey to recreate Tolkien's world, one location at a time.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1280" height="720" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 64w, /_
2057image/w_96,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(2)_u4ADhv4amt5jta2fAZYR_.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Our adventure began with the charm of the Shire and Bree-Land, recreating the lands covered over the first few chapters in The Fellowship of the Ring. We stepped into the Old Forest and delved into the Barrow-downs.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1919" height="1017" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(3)_ZS5qepqCKQA5jeR97uWto.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Initially, our map had clear edges, but we steadily expanded its borders. We reached the Elven harbours and Dwarven mines in the Blue Mountains, pushing the boundaries of our virtual world. We meticulously added forests, mountains, and rivers, creating a more expansive and immersive Middle-earth.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1920" height="1080" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 2048w, /_
2057image/w_3840,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(4)_jESwRdk2nXvhJH-4EC2be.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">A pivotal moment came when we teamed up with the creators of the Conquest Reforged mod. Merging our mod with theirs, we pioneered new building techniques and set higher standards in creative Minecraft.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1200" height="636" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(5)_L9aivvNM--jJXyAB2aY-U.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Our focus returned to Eriador, the region that includes the Shire. We explored the green mounds and ancient ruins of Arnor, the fields of Rohan, and the serene beauty of Rivendell, faithfully recreating the paths of Bilbo and Frodo.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1999" height="1125" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(6)_k7pxGhgi8LIhI_otDAIED.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Delving into Tolkienâs lore, we brought to life the wonders described
2057in his books. Our journey took us along the Anduin River, through the golden woods of Lothlórien, past the Argonath, and down to the majestic falls of Rauros.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="640" height="344" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp 1920w" src="/_image/w_1920,q_80/assets/about-us-ardacraft_(7)_woGzwMubO2FArMvILFgvZ.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">With growing expertise, we reimagined the terrain. We crafted taller mountains, grander trees, and mightier rivers. Enhancing older areas like the Shire was a challenging but rewarding process that brought our vision closer to perfection.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1920" height="1017" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(8)_6ZQ1FE8U70UlpAsRkkHbA.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">Our dream of a better world started to unfold as the Conquest Reforged mod received a major update. We relearned and refined our building techniques, further pushing the limits of what we could achieve.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1999" height="1093" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 64w, /_
2057image/w_96,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(9)_POBPREffwvVeSKz04UMlS.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">The first half of the year presented challenges as our team worked on a separate, private server. Despite these obstacles, new talent and fresh ideas reinvigorated our project, helping us to overcome and thrive.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="1280" height="720" sizes="100vw" srcSet="/_image/w_16,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 16w, /_image/w_32,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 32w, /_image/w_48,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 48w, /_image/w_64,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 64w, /_image/w_96,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 96w, /_image/w_128,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 128w, /_image/w_256,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 256w, /_image/w_384,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 384w, /_image/w_640,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 640w, /_image/w_750,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 750w, /_image/w_828,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 828w, /_image/w_1080,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 1080w, /_image/w_1200,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 1200w, /_image/w_1920,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 1920w, /_image/w_2048,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 2048w, /_image/w_3840,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp 3840w" src="/_image/w_3840,q_80/assets/about-us-ardacraft_(10)_8Hw6Qegnk9E1OhIEEj1nP.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">This year marked significant achievements. We upgraded to a faster version of modded Minecraft, revitalised beloved locations like Bree, and celebrated our progress with the community. We participated in Tolkien Reading Day, sharing readings and adding extraordinary music to enhance our immersive world.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 64w, /_
2057image/w_96,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 384w, /_image/w_640,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Background-ArdaCraft-13_h7MUpfTcYoNZZejYSBGQo.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">A year of technical updates, we created our new website and updated the server to 1.20. Distant Horizons was added to the server, greatly increasing immersion and contributing to the sense of scale, and joining the server was made easier than ever.. The new website allowed us to better showcase our builds and credit those who made them possible, and made joining the server simpler and more accessible! Anorien, the West-Marches and Moria saw great progress as our standards increased.<br/></p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 16w, /_image/w_32,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 32w, /_image/w_48,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 48w, /_image/w_64,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 64w, /_image/w_96,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 96w, /_image/w_128,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 128w, /_image/w_256,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 256w, /_image/w_384,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 384w, /_image/w_640,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 640w, /_image/w_750,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 750w, /_image/w_828,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 828w, /_image/w_1080,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 1080w, /_image/w_1200,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 1200w, /_image/w_1920,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 1920w, /_image/w_2048,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 2048w, /_image/w_3840,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp 3840w" src="/_image/w_3840,q_80/assets/the-estuary-of-the-isen_tMWVQrHYN8zHo16m4-DSK.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">We continued to progress in some of the most vital regions of Tolkienâs works, whilst also implementing technical changes to improve both build quality and guest experience. The updated spawn at Merton College allowed us to better initiate guests, host community meetings and celebrate those who have contributed to ArdaCraft.</p></div></div><div data-timeline="milestone" class="w-element c1uz7vom c1qe7a3l c1uu6edv cif7a18"><img class="w-image c1wn46uq c1tvgytw cd1pdkc c1qd2ypw cpzf3kq c1y5rlds" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Backgroun
2057d-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 64w, /_image/w_96,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 384w, /_image/w_640,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Background-ArdaCraft-23_hRV213G7CAQMuZw56bfYM.webp" decoding="async" loading="lazy"/><div class="w-element ciftonq c70froh cypxkib chx63s8"><p class="w-element ccp5xa0 cte87bx c1hi51uv c14blu46">ArdaCraft stands as a testament to our communityâs dedication and passion. Join us on this journey and become part of the story we are crafting together. <br/><br/>Elen sÃla lúmennâ omentielvo: A star shines on the hour of our meeting. <br/><br/>Welcome to ArdaCraft.<br/></p></div></div></div></div></div></div><div style="display:contents"><div style="display:contents"><div class="w-element cn9hwjs cp86zhm"><div class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div class="w-element c1uz7vom c1qe7a3l c1nujqit crll831"><div data-appear-animation="true" class="w-element c1uz7vom cbm90qe c4oxwb7 c1s1x5i0"><h2 class="w-element cuahv1a c19saac5 c1drbpws c1ay1jd2 c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l ckpe0ue">More about us</h2></div><div data-appear-animation="true" class="w-element c1uz7vom c1nujqit crll831 c1glohgg c12dc88q cgv6e56 cidtkor cd1pdkc c1qd2ypw cpzf3kq c1y5rlds cz4e0wp c1oupalw c1cb1t0o c1ypzpvz"><div class="w-element c1uz7vom c1qe7a3l c1tt79v9 cjulrou cif7a18 c1uu6edv c1i0eu66 cj33bdm c1bt64ui c13lduu0"><div class="w-element"><h3 class="w-element c19saac5 cuahv1a c1eyb87b cxs4t3 c1fkewyi c4iflru c183wvf2 ci1pq5k c1qe7a3l">Meet our Contributors</h3></div><div class="w-element"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">ArdaCraft is shaped by a dedicated community of volunteers. Whether itâs our developers, builders, media creators, or musicians, every member plays a vital role in bringing this project to life<br/><br/>Discover the people behind the scenes who work together to make this vision a reality.</p></div><div class="w-element c1tpsjad clpfs9x"><a secondary-btn="true" class="w-element c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw cwzqs9f cbm90qe c4oxwb7 c1ka351p ceny3lt c1kbf57g c12dc88q c1maocke c18460ip c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 c12zejl6 ccpqtr9 c9uv4ua c1oupalw c1q135ka cqolvuh ccro3s0 c16b803i c1swa551 cw4rxzd" href="/contributors" data-discover="true"><span class="w-element ccp5xa0 c1e5xz0k cg2r0go c1iq6tjl c1yzlqql cvrj00w csd63x6 c4lc5pz c1fkewyi cxs4t3 cte87bx c1yjr2ok cwh8dci">See all contributors</span></a></div></div><img class="w-image c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw c1tvgytw c1rrox41 c3uvy6u c14df0s2" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 16w, /_image/w_32,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 32w, /_image/w_48,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 48w, /_image/w_64,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 64w, /_
2057image/w_96,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 96w, /_image/w_128,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 128w, /_image/w_256,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 256w, /_image/w_384,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 384w, /_image/w_640,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 640w, /_image/w_750,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 750w, /_image/w_828,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 828w, /_image/w_1080,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 1080w, /_image/w_1200,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 1200w, /_image/w_1920,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 1920w, /_image/w_2048,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 2048w, /_image/w_3840,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp 3840w" src="/_image/w_3840,q_80/assets/ardacraft-contributors_1muq0jej82cRjpsLl2R5e.webp" decoding="async" loading="lazy"/></div><div data-appear-animation="true" class="w-element c1uz7vom c1nujqit crll831 cd1pdkc c1qd2ypw cpzf3kq c1y5rlds cpdh5q1 cz4e0wp c1oupalw c1xiad7n c1cb1t0o c1ypzpvz"><div class="w-element c1uz7vom c1qe7a3l c1tt79v9 cjulrou cif7a18 c1uu6edv c1i0eu66 cj33bdm c1bt64ui c13lduu0"><div class="w-element"><h3 class="w-element c19saac5 cuahv1a c1eyb87b cxs4t3 c1fkewyi c4iflru c183wvf2 ci1pq5k c1qe7a3l">Support the Project</h3></div><div class="w-element"><p class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c1fkewyi cxs4t3 c183wvf2 ci1pq5k c1qe7a3l c11ilikl">Weâre proud of the progress weâre making, but maintaining a project of this scale requires resources. Your donations go directly toward our server hosting and the technical tools that keep us online.<br/><br/>Every contribution helps us stay independent and ensures we can continue building for everyone.</p></div><div class="w-element c1tpsjad clpfs9x"><a class="w-element c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw cwzqs9f cbm90qe c4oxwb7 c1ka351p ceny3lt c1kbf57g c12dc88q c1maocke c18460ip c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 c12zejl6 ccpqtr9 c9uv4ua c1oupalw c1q135ka cqolvuh ccro3s0 c16b803i c1swa551 cw4rxzd" href="/support-us" data-discover="true"><span class="w-element ccp5xa0 c1e5xz0k cg2r0go c1iq6tjl c1yzlqql cvrj00w csd63x6 c4lc5pz c1fkewyi cxs4t3 cte87bx c1yjr2ok cwh8dci">Why support us?</span></a></div></div><img class="w-image c3uvy6u c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw c1tvgytw c1rrox41 c14df0s2" alt="" width="2000" height="1000" sizes="100vw" srcSet="/_image/w_16,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 16w, /_image/w_32,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 32w, /_image/w_48,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 48w, /_image/w_64,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 64w, /_image/w_96,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 96w, /_image/w_128,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 128w, /_image/w_256,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 256w, /_image/w_384,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 384w, /_image/w_640,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 640w, /_image/w_750,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 750w, /_image/w_828,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 828w, /_image/w_1080,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 1080w, /_image/w_1200,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 1200w, /_image/w_1920,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 1920w, /_image/w_2048,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 2048w, /_image/w_3840,q_80/assets/Image-Background-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp 3840w" src="/_image/w_3840,q_80/assets/Image-Backgroun
2057d-ArdaCraft-19_A8ujpv11x3VvyLiGArh79.webp" decoding="async" loading="lazy"/></div></div></div></div></div></div><div style="display:contents"><div style="display:contents"><footer class="w-element cim8ys1 cn9hwjs c18460ip"><div data-homepage="footer-container" class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb ciftonq c70froh"><div data-appear-animation="true" class="w-element cxy893h c9nlz19 c1p20qhz c1v4k1bc c1ueillu c1uz7vom cbm90qe c4oxwb7 c1qe7a3l cz700mh cim8ys1 c12t0yr7 cgy7ixj cibdr1z c2baha0 c1365syd cy2zpkj cif7a18 c1uu6edv ccpqtr9 c5dzid1 c8vnqb1 ci70w1a c1kp7oxf c1gfn33m c1093n1r c41uqep c14aukpa cca4bpb"><p class="w-element cuahv1a cte87bx c1drbpws c1ay1jd2 c192mvih cxs4t3 c183wvf2 ci1pq5k c1qe7a3l cjfzmzy ckpe0ue c1scp8rj c1lez5qp c1uyrt4t">Begin your journey <br/>through Middle-earth</p><div class="w-element c1uz7vom c12vpo0c c7ogkau cl41tk7 c1totwqz c1vtqh2m c1f6bmqy c1q0erog cm7p76a c10bxvqh"><a primary-btn="true" class="w-element c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw c1tabcfs c1uz7vom cbm90qe c4oxwb7 c1maocke c18460ip c1kbf57g c12dc88q c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 ccpqtr9 c9uv4ua c1h54omw ciphf6l cqolvuh c14df0s2" href="/join" data-discover="true"><span class="w-element ccp5xa0 c1e5xz0k cg2r0go c1iq6tjl c1yzlqql cvrj00w csd63x6 c4lc5pz c1fkewyi cxs4t3 coboan1 c9uv4ua c1yjr2ok cwh8dci">Join our Server</span><div class="w-html-embed c75lct5"><span aria-hidden="true" class="ws-particle-pen"> 2058 <div class="ws-particle"></div> 2059 <div class="ws-particle"></div> 2060 <div class="ws-particle"></div> 2061 <div class="ws-particle"></div> 2062 <div class="ws-particle"></div> 2063 <div class="ws-particle"></div> 2064 <div class="ws-particle"></div> 2065 <div class="ws-particle"></div> 2066 <div class="ws-particle"></div> 2067 <div class="ws-particle"></div> 2068</span></div></a><a secondary-btn="true" target="_blank" href="https://discord.com/invite/qcYBkCmAKZ" class="w-element c1n9z9db c1a4d3g5 c1d5q97y cbp5xrw cwzqs9f cbm90qe c4oxwb7 c1ka351p ceny3lt c1kbf57g c12dc88q c1maocke c18460ip c32xzbx c1i8ednk c1fx2c52 ciexy49 cdlctc7 c12zejl6 ccpqtr9 c9uv4ua c6agakc c1oupalw c1q135ka cqolvuh ccro3s0 c16b803i c1swa551 cw4rxzd c14df0s2"><span class="w-element ccp5xa0 c1e5xz0k cg2r0go c1iq6tjl c1yzlqql cvrj00w csd63x6 c4lc5pz c1fkewyi cxs4t3 cte87bx c1yjr2ok cwh8dci">Join our Discord</span></a></div></div></div><hr class="w-element c18xmvv9 c1071umj cwglj61 c1ccl4po crdmx6o c1wn46uq crpy41h cp6ye3q c1igm2uw c1r9z6ml c7ji9jo cx16f77 c13irkzz"/><div data-homepage="footer-container" class="w-element c1wn46uq cozcy5p c1qe7a3l cbm90qe cjulrou c1a4d992 c1e9k3hw ce1b68t c1rx8qlb c1ljsp2s c1ll7j66"><div class="w-element c1uz7vom c1etu3xr cfn02q6 c17waf3r c1in47ll crpy41h c1cb1t0o c1my9zsh cv07e20"><div class="w-element c1vpmbj8 c1uz7vom c1qe7a3l cfn02q6 c17waf3r c1851rqr c14df0s2 c1my9zsh cv07e20"><div class="w-element c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><img class="w-image cs72fi1 ccpqtr9" alt="" width="938" height="212" sizes="100vw" srcSet="/_image/w_16,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 16w, /_image/w_32,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 32w, /_image/w_48,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 48w, /_image/w_64,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 64w, /_image/w_96,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 96w, /_image/w_128,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 128w, /_image/w_256,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 256w, /_image/w_384,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 384w, /_image/w_640,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 640w, /_image/w_750,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 750w, /_image/w_828,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 828w, /_image/w_1080,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 1080w, /_image/w_1200,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 1200w, /_image/w_1920,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg 1920w" src="/_image/w_1920,q_80/assets/AC-Logo-Text_7UCZ9hmjoLBDBjErO2cDL.svg" decoding="async" loading="lazy"/><p class="w-element ccp5xa0 c1qi35su c1ofywq3 c1gtpjdp c1hi51uv c11ilikl">Founded in May of 2014, ArdaCraft seeks to recreate J.R.R. Tolkien's Middle-earth in one of the largest and most detailed Minecraft maps ever created.</p></div><div class="w-element c1uz7vom c12vpo0c c7ogkau cbm90qe cjulrou"><a href="https://www.instagram.com/ardacraft" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed c1qi35su cbm90qe c4oxwb7"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20p
2068x; height: 20px;"> 2069 <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/> 2070</svg></div></a><a href="https://www.youtube.com/channel/UCoqngW24Nl6yS-u99vE4E1Q" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed c1qi35su cbm90qe c4oxwb7"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20px; height: 20px;"> 2071 <path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/> 2072</svg></div></a><a href="https://www.tiktok.com/@ardacraft_" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed c1qi35su cbm90qe c4oxwb7"><svg role="img" viewBox="-2 -2 28 28" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20px; height: 20px;"> 2073 <path d="M12.525.02c1.31-.02 2.61-.01 3.91-.01.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.59-1.01V14.5c.01 2.32-.6 4.67-2.12 6.44-1.43 1.72-3.66 2.84-5.9 3.01-2.03.18-4.13-.26-5.86-1.39-1.73-1.12-3-2.98-3.48-5-.55-2.22-.16-4.66 1.1-6.55 1.11-1.74 3-3 5.06-3.48.56-.12 1.14-.17 1.71-.17v4.21c-.81.01-1.66.23-2.33.7-.63.45-1.07 1.17-1.22 1.94-.21.89-.04 1.86.47 2.6.49.75 1.3 1.25 2.17 1.41.88.17 1.83.02 2.61-.43.76-.43 1.34-1.17 1.57-2.01.12-.46.16-.94.16-1.42V.02z"/> 2074</svg></div></a><a href="https://www.facebook.com/ArdaCraftMC/" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed c1qi35su cbm90qe c4oxwb7"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20px; height: 20px;"> 2075 <path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/> 2076</svg></div></a><a href="https://x.com/ArdaCraft_" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed c1qi35su cbm90qe c4oxwb7"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20px; height: 20px;"> 2077 <path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/> 2078</svg></div></a><a href="https://discord.com/invite/qcYBkCmAKZ" Link="true" class="w-element cbm90qe c4oxwb7 c1qqnmdg"><div class="w-html-embed cbm90qe c4oxwb7 c1qi35su"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" style="width: 20px; height: 20px;"> 2079 <path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128c.126-.094.252-.192.372-.29a.074.074 0 0 1 .077-.01c3.927 1.793 8.18
20791.793 12.061 0a.074.074 0 0 1 .077.01c.12.098.246.196.373.29a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.874.894.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.419 2.156-2.419 1.21 0 2.176 1.096 2.156 2.419 0 1.334-.956 2.419-2.156 2.419zm7.974 0c-1.182 0-2.156-1.085-2.156-2.419 0-1.333.955-2.419 2.156-2.419 1.21 0 2.176 1.096 2.156 2.419 0 1.334-.946 2.419-2.156 2.419z"/> 2080</svg></div></a></div></div><div class="w-element c1uz7vom c1etu3xr c1in47ll c17waf3r cf5cbyn c14df0s2 c1my9zsh cv07e20 c1cb1t0o"><div class="w-element c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru cqm8yvk cykimf9 cr9s7iz">About</p><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/join" data-discover="true">Join Our Server</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/support-us" data-discover="true">Support Us</a><a link="true" aria-current="page" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl active" href="/about" data-discover="true">About Us</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/contact-us" data-discover="true">Contact Us</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/media-resources" data-discover="true">Media Resources</a></div><div class="w-element c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru cqm8yvk cykimf9 cr9s7iz">Explore</p><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/map" data-discover="true">Maps</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/location" data-discover="true">Locations & Regions</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/contributors" data-discover="true">Contributors</a></div><div class="w-element c1uz7vom c1qe7a3l c12vpo0c c7ogkau"><p class="w-element cuahv1a c19saac5 c1iq6tjl c1nf6fk9 c4iflru cqm8yvk cykimf9 cr9s7iz">Resources</p><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/resources" data-discover="true">Resources & Articles</a><a link="true" class="w-element ccp5xa0 cte87bx c1ofywq3 c1gtpjdp c1hi51uv c9uv4ua c1qqnmdg c11ilikl" href="/resources/rules" data-discover="true">Rules</a></div></div></div><hr class="w-element c18xmvv9 c1071umj cwglj61 c1ccl4po crdmx6o c1wn46uq c1igm2uw c1r9z6ml c7ji9jo cx16f77 c13irkzz"/><div class="w-element c1uz7vom cbm90qe c17waf3r c1wn46uq cqm8yvk c1cb1t0o c1hddi9v c1uyrt4t"><p class="w-element ccp5xa0 c18xmvv9 c1uf2hoa c1ofywq3">© 2026 ArdaCraft. All Rights Reserved. ArdaCraft is not affiliated with or managed by Mojang AB or Microsoft.</p><div class="w-element c1uz7vom c12vpo0c c7ogkau"><a class="w-element ccp5xa0 c18xmvv9 c1uf2hoa c1ofywq3 c9uv4ua c32xzbx cz92tk c1gxmacj c1j9ejvd cdlctc7 c1qqnmdg c18zr17c" href="/sitemap" data-discover="true">Sitemap</a><a class="w-element ccp5xa0 c18xmvv9 c1uf2hoa c1ofywq3 c9uv4ua c32xzbx cz92tk c1gxmacj c1j9ejvd cdlctc7 c1qqnmdg c18zr17c" href="/privacy-policy" data-discover="true">Privacy</a><a class="w-element ccp5xa0 c18xmvv9 c1uf2hoa c1ofywq3 c9uv4ua c32xzbx cz92tk c1gxmacj c1j9ejvd cdlctc7 c1qqnmdg c18zr17c" href="/cookie-policy" data-discover="true">Cookies</a></div></div></div></footer></div></div>
2080<script type="01ecff90265c30195d8b6777-text/javascript">window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
2080<script type="01ecff90265c30195d8b6777-module" async="">; 2081import * as route0 from "/assets/root-CilvbZMI.js"; 2082import * as route1 from "/assets/_about_._index-CKrkfWUp.js"; 2083 window.__reactRouterManifest = { 2084 "entry": { 2085 "module": "/assets/entry.client-BiNCLkaT.js", 2086 "imports": [ 2087 "/assets/chunk-4N6VE7H7-Cg8mIVGN.js" 2088 ], 2089 "css": [] 2090 }, 2091 "routes": { 2092 "root": { 2093 "id": "root", 2094 "path": "", 2095 "hasAction": false, 2096 "hasLoader": true, 2097 "hasClientAction": false, 2098 "hasClientLoader": false, 2099 "hasClientMiddleware": false, 2100 "hasDefaultExport": true, 2101 "hasErrorBoundary": false, 2102 "module": "/assets/root-CilvbZMI.js", 2103 "imports": [ 2104 "/assets/chunk-4N6VE7H7-Cg8mIVGN.js", 2105 "/assets/_index-BzjJZqI1.js", 2106 "/assets/image-BrfMozFv.js", 2107 "/assets/fragment-RiJKGpPm.js" 2108 ], 2109 "css": [] 2110 }, 2111 "routes/[about]._index": { 2112 "id": "routes/[about]._index", 2113 "parentId": "root", 2114 "path": "about", 2115 "index": true, 2116 "hasAction": true, 2117 "hasLoader": true, 2118 "hasClientAction": false, 2119 "hasClientLoader": false, 2120 "hasClientMiddleware": false, 2121 "hasDefaultExport": true, 2122 "hasErrorBoundary": false, 2123 "module": "/assets/_about_._index-CKrkfWUp.js", 2124 "imports": [ 2125 "/assets/chunk-4N6VE7H7-Cg8mIVGN.js", 2126 "/assets/image-BrfMozFv.js", 2127 "/assets/fragment-RiJKGpPm.js", 2128 "/assets/index-C_26nMkx.js" 2129 ], 2130 "css": [] 2131 }, 2132 "routes/_index": { 2133 "id": "routes/_index", 2134 "parentId": "root", 2135 "index": true, 2136 "hasAction": true, 2137 "hasLoader": true, 2138 "hasClientAction": false, 2139 "hasClientLoader": false, 2140 "hasClientMiddleware": false, 2141 "hasDefaultExport": true, 2142 "hasErrorBoundary": false, 2143 "module": "/assets/_index-B0zdF4p6.js", 2144 "imports": [ 2145 "/assets/chunk-4N6VE7H7-Cg8mIVGN.js", 2146 "/assets/image-BrfMozFv.js", 2147 "/assets/_index-BzjJZqI1.js", 2148 "/assets/index-C_26nMkx.js", 2149 "/assets/fragment-RiJKGpPm.js" 2150 ], 2151 "css": [] 2152 } 2153 }, 2154 "url": "/assets/manifest-0f7c3206.js", 2155 "version": "0f7c3206" 2156}; 2157 window.__reactRouterRouteModules = {"root":route0,"routes/[about]._index":route1}; 2158 2159import("/assets/entry.client-BiNCLkaT.js");</script>
2159<script type="01ecff90265c30195d8b6777-text/javascript">((storageKey2, restoreKey) => { 2160 if (!window.history.state || !window.history.state.key) { 2161 let key = Math.random().toString(32).slice(2); 2162 window.history.replaceState({ key }, ""); 2163 } 2164 try { 2165 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 2166 let storedY = positions[restoreKey || window.history.state.key]; 2167 if (typeof storedY === "number") { 2168 window.scrollTo(0, storedY); 2169 } 2170 } catch (error) { 2171 console.error(error); 2172 sessionStorage.removeItem(storageKey2); 2173 } 2174 })("react-router-scroll-positions", null)</script>
2174<!--$-->
2174<script type="01ecff90265c30195d8b6777-text/javascript">window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":-5,\"_6\":7},\"actionData\",\"errors\",\"root\",\"routes/[about]._index\",{\"_8\":9,\"_10\":11,\"_12\":13,\"_14\":15,\"_16\":17},\"host\",\"ardacraft.me\",\"url\",\"https://ardacraft.me/about\",\"system\",{\"_34\":35,\"_36\":37,\"_38\":39,\"_40\":41},\"resources\",{},\"pageMeta\",{\"_18\":19,\"_20\":21,\"_22\":23,\"_24\":25,\"_26\":27,\"_28\":-7,\"_29\":-7,\"_30\":25,\"_31\":-7,\"_32\":33},\"title\",\"Our History \u0026 Project Origins\",\"description\",\"Discover how ArdaCraft began. Follow our journey from an ambitious concept to creating the most detailed recreation of J.R.R. Tolkien's world.\",\"excludePageFromSearch\",false,\"language\",\"\",\"socialImageAssetName\",\"Open-Graph-ArdaCraft-1200x630_kjlVxbKH8f2IZaYkmstkE.jpg\",\"socialImageUrl\",\"status\",\"redirect\",\"content\",\"custom\",[],\"params\",{},\"search\",{},\"origin\",\"https://ardacraft.me\",\"pathname\",\"/about\"]\n");</script>
2174<!--$-->
2174<script type="01ecff90265c30195d8b6777-text/javascript">window.__reactRouterContext.streamController.close();</script>
2174<!--/$--><!--/$-->
vendor: 142 bytes, line 2174
2174<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="01ecff90265c30195d8b6777-|49" defer></script>
2174<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a432f3f3ac092af4',t:'MTc5MDc2ODQyOA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2174<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"df41eb7f79af41ca9a411a327062afcb","r":1,"spa":2}' crossorigin="anonymous"></script>
2174 2175</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.