PageSourceSearch

https://ardacraft.me/about

html ardacraft.me collected 2026-09-30 11:40:31 UTC 185,061 bytes, 2,175 lines download raw bytes

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 &amp; 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&#x27;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&#x27;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 &amp; 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&#x27;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&#x27;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&#x27;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 &amp; 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 &amp; 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.