<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>War Dungeon — Warhammer & Dungeons & Dragons specialty retail</title>
<link rel="stylesheet" href="https://use.typekit.net/onl7dxx.css">
<style>
:root{
--primary:#C5A688; --secondary:#D8C3B1; --tertiary:#F4A479;
--dark:#1B1314; --light:#FFFFFF; --text:#613F34; --neutral:#2B1B1C;
--accent:#832D15; --positive:#4A6E50; --negative:#C8442D;
--rodeo:#C5A688; --rodeo-light:#D8C3B1; --caput:#613F34;
--cowboy:#2B1B1C; --liquourice:#1B1314; --sienna:#832D15; --bronze:#F4A479;
--bg-rodeo:#C5A688; --bg-parchment:#E4D3BF;
--bg-card:#EADBC6; --bg-surface-alt:#D8C3B1;
--text-on-light:#613F34; --text-on-parchment:#613F34;
--text-eyebrow:#832D15; --text-meta:#7A5A4D;
--display:modesto-condensed,'Cinzel','Trajan Pro','Playfair Display',Georgia,serif;
--body:'palatino-linotype','Palatino Linotype',Palatino,'EB Garamond','Book Antiqua',Georgia,serif;
--sz-display:96px; --sz-h1:64px; --sz-h2:48px; --sz-h3:36px; --sz-h4:24px;
--sz-body-lg:22px; --sz-body:18px; --sz-body-sm:16px; --sz-eyebrow:13px; --sz-micro:12px;
--lh-tight:1.2; --lh-heading:1.35; --lh-body:1.5;
--ls-tight:-0.01em; --ls-normal:0; --ls-wide:0.04em; --ls-wider:0.08em; --ls-widest:0.16em;
--sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
--sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;
--r-sm:4px; --r-md:7px; --r-lg:14px; --r-xl:21px;
--br-hair:1px; --br-reg:2px; --br-thick:4px;
--container:1200px; --container-wide:1440px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg-rodeo);color:var(--text);font-family:var(--body);font-size:var(--sz-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5)}
.container--wide{max-width:var(--container-wide)}
h1,h2,h3,h4,h5{font-family:var(--display);font-weight:600;line-height:var(--lh-heading);color:var(--text)}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--text-eyebrow)}
/* ============ ENGRAVED ORNAMENT PRIMITIVES ============ */
.eng-rule{display:flex;align-items:center;gap:var(--sp-4);margin:var(--sp-7) 0;color:var(--caput)}
.eng-rule__line{flex:1;height:2px;background:linear-gradient(to right,transparent 0,var(--caput) 6%,var(--caput) 94%,transparent 100%)}
.eng-rule__ornament{flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.eng-rule__ornament svg{width:56px;height:56px}
/* Section heading inside illustrated frame */
.eng-head{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-6);text-align:center}
.eng-head__cartouche{position:relative;display:inline-block;padding:var(--sp-3) var(--sp-8)}
.eng-head__cartouche svg{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.eng-head__title{position:relative;z-index:1;font-family:var(--display);font-size:var(--sz-h2);line-height:1.1;letter-spacing:var(--ls-tight);text-transform:uppercase;color:var(--caput)}
.eng-head__eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--sienna)}
.eng-head__sub{font-family:var(--body);font-style:italic;font-size:var(--sz-body-lg);color:var(--text-meta);max-width:640px;margin:0 auto}
/* Illustrated ribbon-stamp CTA (replaces buttons) */
.ribbon-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:18px 64px;font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:20px;color:var(--light);background:transparent;border:0;cursor:pointer;line-height:1}
.ribbon-cta svg{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.ribbon-cta__label{position:relative;z-index:1;white-space:nowrap}
.ribbon-cta--ghost{color:var(--caput)}
.ribbon-cta--small{padding:12px 40px;font-size:15px}
/* Parchment panel (only surface variant — light cream tint of rodeo) */
.parchment{background:var(--bg-parchment)}
/* ============ PRE-HEADER BAR ============ */
.preheader{background:var(--bg-parchment);border-top:1px solid var(--caput);border-bottom:1px solid var(--caput);padding:10px 0;font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--caput)}
.preheader__inner{max-width:var(--container-wide);margin:0 auto;padding:0 var(--sp-5);display:flex;align-items:center;justify-content:center;gap:var(--sp-5)}
.preheader__end{flex:0 0 auto;width:48px;height:14px;color:var(--caput)}
.preheader__msg{display:flex;align-items:center;gap:var(--sp-4)}
.preheader__msg svg{width:14px;height:14px;flex:0 0 auto}
.preheader__divider{width:1px;height:14px;background:var(--caput);opacity:.6}
/* ============ GLOBAL HEADER ============ */
.header{background:var(--bg-rodeo);padding:var(--sp-5) 0;position:relative}
.header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 6' preserveAspectRatio='none'><path d='M0 3 L8 3 M12 3 L16 3 M20 1 L20 5 M24 3 L28 3 M32 3 L40 3' stroke='%23613F34' stroke-width='1.2' fill='none'/></svg>");background-repeat:repeat-x;background-size:40px 6px}
.header__inner{max-width:var(--container-wide);margin:0 auto;padding:0 var(--sp-5);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5)}
.header__brand{display:flex;align-items:center;gap:var(--sp-3);flex:0 0 auto}
.header__wordmark{font-family:var(--display);font-size:30px;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--caput);line-height:1}
.header__tag{font-family:var(--body);font-style:italic;font-size:var(--sz-eyebrow);color:var(--text-meta);letter-spacing:var(--ls-wide)}
.header__nav{display:flex;align-items:center;gap:var(--sp-7);flex:1;justify-content:center}
.header__nav a{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:15px;color:var(--caput);position:relative;padding:6px 2px}
.header__nav a:hover{color:var(--sienna)}
.header__nav a.has-menu::after{content:"▾";margin-left:6px;font-size:10px;opacity:.7}
.header__utils{display:flex;align-items:center;gap:var(--sp-5);flex:0 0 auto;color:var(--caput)}
.header__utils svg{width:22px;height:22px}
.header__basket{position:relative;display:flex;align-items:center;gap:6px}
.header__basket .badge{position:absolute;top:-8px;right:-12px;width:22px;height:22px;border-radius:50%;background:var(--sienna);color:var(--light);font-family:var(--display);font-size:11px;display:flex;align-items:center;justify-content:center;letter-spacing:0}
/* ============ HERO ============ */
.hero{background:var(--bg-rodeo);padding:var(--sp-9) 0 var(--sp-8)}
.hero__frame{position:relative;max-width:1100px;margin:0 auto;padding:var(--sp-7) var(--sp-7) var(--sp-8)}
.hero__frame svg.hero__bezel{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;gap:var(--sp-8);align-items:center}
.hero__eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--sienna);margin-bottom:var(--sp-4)}
.hero__title{font-family:var(--display);font-size:84px;line-height:.95;letter-spacing:var(--ls-tight);color:var(--caput);text-transform:uppercase;margin-bottom:var(--sp-5)}
.hero__title em{font-style:italic;color:var(--sienna);font-weight:400}
.hero__sub{font-family:var(--body);font-size:var(--sz-body-lg);line-height:1.55;color:var(--text);max-width:520px;margin-bottom:var(--sp-7)}
.hero__cta-row{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap}
.hero__scene{position:relative;width:100%;aspect-ratio:1/1;max-width:520px;margin-left:auto}
.hero__scene svg{width:100%;height:100%}
/* ============ TRUST STRIP ============ */
.trust{background:var(--bg-parchment);padding:var(--sp-8) 0}
.trust__grid{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:repeat(4,1fr);align-items:start}
.trust__cell{padding:0 var(--sp-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);position:relative}
.trust__cell + .trust__cell::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:80px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 80'><path d='M2 0 L2 26 M2 34 L2 46 M2 54 L2 80' stroke='%23613F34' stroke-width='1' fill='none'/><circle cx='2' cy='30' r='2' fill='none' stroke='%23613F34' stroke-width='1'/><circle cx='2' cy='50' r='2' fill='none' stroke='%23613F34' stroke-width='1'/></svg>") center/contain no-repeat}
.trust__icon{width:60px;height:60px;color:var(--caput)}
.trust__title{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:17px;color:var(--caput);line-height:1.2}
.trust__body{font-family:var(--body);font-size:14px;color:var(--text-meta);line-height:1.4;max-width:220px}
/* ============ TOOLS TEASER ============ */
.tools{background:var(--bg-rodeo);padding:var(--sp-9) 0}
.tools__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);max-width:var(--container);margin:0 auto;padding:0 var(--sp-5)}
.tool-card{position:relative;background:var(--bg-card);padding:var(--sp-6) var(--sp-6) var(--sp-6);text-align:center}
.tool-card__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.tool-card__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-4)}
.tool-card__illus{width:100%;max-width:280px;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.tool-card__illus svg{width:100%;height:100%}
.tool-card__eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--sienna)}
.tool-card__title{font-family:var(--display);font-size:34px;text-transform:uppercase;letter-spacing:var(--ls-tight);color:var(--caput);line-height:1}
.tool-card__body{font-family:var(--body);font-size:17px;color:var(--text);line-height:1.5;max-width:380px}
.tool-card__badge{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:11px;padding:4px 14px;border:1px solid var(--caput);color:var(--caput)}
/* ============ CHOOSE YOUR GAME ============ */
.games{background:var(--bg-parchment);padding:var(--sp-9) 0}
.games__grid{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.cat-card{position:relative;padding:var(--sp-5) var(--sp-5) var(--sp-6);text-align:center;background:var(--bg-card)}
.cat-card__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cat-card__inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp-3);align-items:center}
.cat-card__illus{width:100%;aspect-ratio:5/4;display:flex;align-items:center;justify-content:center;color:var(--caput)}
.cat-card__illus svg{width:90%;height:90%}
.cat-card__ribbon{position:relative;margin-top:-22px;padding:8px 28px;font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:18px;color:var(--light);background:transparent}
.cat-card__ribbon svg{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.cat-card__ribbon span{position:relative;z-index:1}
.cat-card__body{font-family:var(--body);font-size:15px;color:var(--text);line-height:1.5;max-width:280px;font-style:italic}
.cat-card__cta{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:13px;color:var(--sienna);border-bottom:1.5px solid var(--sienna);padding-bottom:2px;margin-top:var(--sp-2)}
/* ============ FAN FAVOURITES ============ */
.favs{background:var(--bg-rodeo);padding:var(--sp-9) 0}
.favs__grid{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5)}
.product-card{position:relative;padding:var(--sp-4) var(--sp-4) var(--sp-5);background:var(--bg-card);display:flex;flex-direction:column}
.product-card__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.product-card__inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp-3);height:100%}
.product-card__illus{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;color:var(--caput);padding:var(--sp-4)}
.product-card__illus svg{width:100%;height:100%}
.product-card__coin{position:absolute;top:14px;right:14px;width:50px;height:50px;z-index:2}
.product-card__game{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-micro);color:var(--text-meta)}
.product-card__title{font-family:var(--display);font-size:21px;line-height:1.1;color:var(--caput);text-transform:uppercase;letter-spacing:var(--ls-tight);min-height:46px}
.product-card__rating{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--body);font-size:13px;color:var(--text-meta)}
.product-card__stars{color:var(--sienna);letter-spacing:2px;font-size:14px}
.product-card__row{margin-top:auto;padding-top:var(--sp-3);display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);border-top:1px solid rgba(97,63,52,.35)}
.product-card__price{font-family:var(--display);font-size:24px;color:var(--caput);line-height:1}
.product-card__quick{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:12px;color:var(--sienna);border-bottom:1.5px solid var(--sienna);padding-bottom:2px}
/* ============ HOW-TO GUIDES ============ */
.guides{background:var(--bg-parchment);padding:var(--sp-9) 0}
.guides__grid{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.guide-card{position:relative;background:var(--bg-card);padding:0}
.guide-card__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.guide-card__inner{position:relative;z-index:1;display:flex;flex-direction:column;height:100%}
.guide-card__cover{aspect-ratio:16/10;color:var(--caput);padding:var(--sp-5);display:flex;align-items:center;justify-content:center;border-bottom:1.5px solid var(--caput)}
.guide-card__cover svg{width:100%;height:100%}
.guide-card__body{padding:var(--sp-5) var(--sp-5) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3)}
.guide-card__meta{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.guide-card__badge{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:11px;padding:4px 12px;border:1px solid var(--caput);color:var(--caput);background:var(--bg-parchment)}
.guide-card__time{font-family:var(--body);font-style:italic;font-size:13px;color:var(--text-meta)}
.guide-card__title{font-family:var(--display);font-size:26px;line-height:1.1;color:var(--caput);text-transform:uppercase;letter-spacing:var(--ls-tight)}
.guide-card__excerpt{font-family:var(--body);font-size:15px;line-height:1.55;color:var(--text)}
.guide-card__cta{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:13px;color:var(--sienna);border-bottom:1.5px solid var(--sienna);padding-bottom:2px;align-self:flex-start;margin-top:var(--sp-2)}
/* ============ CREATOR SPOTLIGHT ============ */
.creators{background:var(--bg-rodeo);padding:var(--sp-9) 0}
.creators__main{display:grid;grid-template-columns:380px 1fr;gap:var(--sp-8);max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);align-items:center}
.creator-feature{position:relative;background:var(--bg-card);padding:var(--sp-6);text-align:center}
.creator-feature__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.creator-feature__inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--sp-3);align-items:center}
.creator-feature__avatar{width:160px;height:160px;color:var(--caput)}
.creator-feature__name{font-family:var(--display);font-size:32px;text-transform:uppercase;letter-spacing:var(--ls-tight);color:var(--caput);line-height:1}
.creator-feature__tags{display:flex;gap:var(--sp-2);flex-wrap:wrap;justify-content:center}
.creator-feature__tag{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:11px;padding:3px 10px;border:1px solid var(--caput);color:var(--caput)}
.creator-feature__body{font-family:var(--body);font-size:16px;line-height:1.5;color:var(--text);max-width:300px;font-style:italic}
.creators__strip-wrap{display:flex;flex-direction:column;gap:var(--sp-5)}
.creators__strip-head{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:var(--sz-eyebrow);color:var(--sienna)}
.creators__strip{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.creator-mini{position:relative;padding:var(--sp-4);background:var(--bg-card);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center}
.creator-mini__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.creator-mini__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.creator-mini__avatar{width:70px;height:70px;color:var(--caput)}
.creator-mini__name{font-family:var(--display);font-size:16px;text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--caput);line-height:1}
.creator-mini__game{font-family:var(--body);font-style:italic;font-size:12px;color:var(--text-meta)}
/* ============ PAINTING SHOWCASE (PHOTOGRAPHIC TIER) ============ */
.showcase{background:var(--bg-parchment);padding:var(--sp-9) 0}
.showcase__grid{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:var(--sp-4)}
.tile{position:relative;overflow:hidden;border:1.5px solid var(--caput)}
.tile--tall{grid-row:span 2}
.tile__photo{position:absolute;inset:0;width:100%;height:100%;display:block}
.tile__corners{position:absolute;inset:0;pointer-events:none}
.tile__caption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(27,19,20,.92),rgba(27,19,20,0));color:var(--light);padding:var(--sp-5) var(--sp-4) var(--sp-3);font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:14px;line-height:1.2}
.tile__caption em{font-style:italic;font-family:var(--body);text-transform:none;letter-spacing:0;font-size:12px;color:#E4D3BF;display:block;margin-top:2px}
.showcase__cta-row{display:flex;justify-content:center;margin-top:var(--sp-7)}
/* ============ LOYALTY STRIP ============ */
.loyalty{background:var(--bg-rodeo);padding:var(--sp-9) 0}
.loyalty__panel{max-width:var(--container);margin:0 auto;padding:var(--sp-7) var(--sp-7);position:relative;background:var(--bg-card);text-align:center}
.loyalty__frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.loyalty__inner{position:relative;z-index:1}
.loyalty__brands{display:flex;align-items:center;justify-content:center;gap:var(--sp-7);margin:var(--sp-6) 0;flex-wrap:wrap}
.loyalty-coin{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:130px}
.loyalty-coin__face{width:90px;height:90px}
.loyalty-coin__name{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:13px;color:var(--caput);line-height:1.1;text-align:center}
/* ============ NEWSLETTER ============ */
.newsletter{background:var(--bg-parchment);padding:var(--sp-9) 0}
.newsletter__panel{max-width:780px;margin:0 auto;padding:0 var(--sp-5);text-align:center}
.newsletter__illus{width:140px;height:auto;margin:0 auto var(--sp-4);color:var(--caput)}
.newsletter__form{display:flex;align-items:stretch;gap:0;margin-top:var(--sp-6);max-width:540px;margin-left:auto;margin-right:auto;border:1.5px solid var(--caput);background:var(--bg-card)}
.newsletter__form input{flex:1;border:0;background:transparent;font-family:'Courier New','Courier',monospace;font-size:16px;color:var(--caput);padding:14px 18px;letter-spacing:.02em;outline:none}
.newsletter__form input::placeholder{color:var(--text-meta);font-style:italic;font-family:var(--body)}
.newsletter__submit{position:relative;border:0;background:transparent;padding:0;width:200px;cursor:pointer;font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-wider);font-size:16px;color:var(--light)}
.newsletter__submit svg{position:absolute;inset:0;width:100%;height:100%}
.newsletter__submit span{position:relative;z-index:1}
.newsletter__fine{font-family:var(--body);font-style:italic;font-size:13px;color:var(--text-meta);margin-top:var(--sp-4)}
/* ============ FOOTER ============ */
.footer{background:var(--bg-rodeo);padding:var(--sp-9) 0 0;border-top:0;position:relative}
.footer::before{content:"";display:block;height:6px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 6' preserveAspectRatio='none'><path d='M0 3 L8 3 M12 3 L16 3 M20 1 L20 5 M24 3 L28 3 M32 3 L40 3' stroke='%23613F34' stroke-width='1.2' fill='none'/></svg>");background-repeat:repeat-x;background-size:40px 6px;margin-top:-96px;margin-bottom:var(--sp-9)}
.footer__main{max-width:var(--container);margin:0 auto;padding:0 var(--sp-5);display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--sp-7)}
.footer__brand-col h4,.footer__col h4{font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:14px;color:var(--sienna);margin-bottom:var(--sp-4)}
.footer__wordmark{font-family:var(--display);font-size:32px;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--caput);line-height:1;margin-bottom:var(--sp-3)}
.footer__brand-tag{font-family:var(--body);font-style:italic;font-size:14px;color:var(--text-meta);line-height:1.5;max-width:280px;margin-bottom:var(--sp-4)}
.footer__col ul{list-style:none}
.footer__col li{margin-bottom:10px}
.footer__col a{font-family:var(--body);font-size:15px;color:var(--text);line-height:1.4}
.footer__col a:hover{color:var(--sienna)}
.footer__sister{margin-top:var(--sp-5);display:flex;gap:var(--sp-3);flex-wrap:wrap}
.footer__sister-coin{width:46px;height:46px;color:var(--caput)}
.footer__baseline{margin-top:var(--sp-9);border-top:1.5px solid var(--caput);padding:var(--sp-5) var(--sp-5)}
.footer__baseline-inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;font-family:var(--body);font-size:13px;color:var(--text-meta)}
.footer__pay{display:flex;gap:var(--sp-3);align-items:center}
.footer__pay svg{height:22px;width:auto;color:var(--caput)}
.footer__social{display:flex;gap:var(--sp-3);color:var(--caput)}
.footer__social svg{width:22px;height:22px}
.footer__badge{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--display);text-transform:uppercase;letter-spacing:var(--ls-widest);font-size:11px;color:var(--caput)}
.footer__badge svg{width:22px;height:22px}
/* Mobile */
@media (max-width:900px){
.header__nav{display:none}
.hero__inner,.tools__grid,.guides__grid,.creators__main,.footer__main{grid-template-columns:1fr;gap:var(--sp-7)}
.hero__title{font-size:54px}
.games__grid{grid-template-columns:repeat(2,1fr)}
.favs__grid{grid-template-columns:repeat(2,1fr)}
.trust__grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-6)}
.trust__cell + .trust__cell::before{display:none}
.showcase__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}
.creators__strip{grid-template-columns:repeat(2,1fr)}
.preheader__inner{flex-direction:column;gap:var(--sp-2);font-size:11px}
.preheader__divider{display:none}
.footer__baseline-inner{justify-content:flex-start}
}
@media (max-width:480px){
.hero__title{font-size:42px}
.games__grid,.favs__grid,.showcase__grid,.creators__strip{grid-template-columns:1fr}
.newsletter__form{flex-direction:column;border:0;background:transparent;gap:var(--sp-3)}
.newsletter__form input{border:1.5px solid var(--caput);background:var(--bg-card)}
.newsletter__submit{width:100%;height:54px}
.eng-head__title{font-size:34px}
}
</style>
</head>
<body>
<!-- ============ PRE-HEADER ============ -->
<div class="preheader" role="region" aria-label="Site announcements">
<div class="preheader__inner">
<svg class="preheader__end" viewBox="0 0 48 14" fill="none" aria-hidden="true">
<path d="M2 7 L18 7 M22 4 L26 7 L22 10 Z M30 2 L46 7 L30 12" stroke="#613F34" stroke-width="1" fill="none"/>
</svg>
<span class="preheader__msg"><svg viewBox="0 0 14 14" aria-hidden="true"><rect x="2" y="4" width="9" height="6" stroke="#613F34" stroke-width="1" fill="none"/><circle cx="4" cy="11" r="1" stroke="#613F34" stroke-width="1" fill="none"/><circle cx="10" cy="11" r="1" stroke="#613F34" stroke-width="1" fill="none"/></svg>Free UK shipping over £75</span>
<span class="preheader__divider"></span>
<span class="preheader__msg"><svg viewBox="0 0 14 14" aria-hidden="true"><polygon points="7,2 12,11 2,11" stroke="#613F34" stroke-width="1" fill="none"/><circle cx="7" cy="8" r="1" fill="#613F34"/></svg>New 40K Combat Patrols now in stock</span>
<span class="preheader__divider"></span>
<span class="preheader__msg"><svg viewBox="0 0 14 14" aria-hidden="true"><circle cx="7" cy="7" r="5" stroke="#613F34" stroke-width="1" fill="none"/><path d="M5 7 L9 7 M7 5 L7 9" stroke="#613F34" stroke-width="1"/></svg>Earn points here — redeem across all four houses</span>
<svg class="preheader__end" viewBox="0 0 48 14" fill="none" aria-hidden="true" style="transform:scaleX(-1)">
<path d="M2 7 L18 7 M22 4 L26 7 L22 10 Z M30 2 L46 7 L30 12" stroke="#613F34" stroke-width="1" fill="none"/>
</svg>
</div>
</div>
<!-- ============ HEADER ============ -->
<header class="header" role="banner">
<div class="header__inner">
<div class="header__brand">
<svg width="46" height="46" viewBox="0 0 46 46" aria-hidden="true">
<circle cx="23" cy="23" r="21" fill="none" stroke="#613F34" stroke-width="1.5"/>
<circle cx="23" cy="23" r="17" fill="none" stroke="#613F34" stroke-width="0.8"/>
<path d="M14 30 L14 14 L23 22 L32 14 L32 30" stroke="#613F34" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<path d="M10 23 L36 23" stroke="#832D15" stroke-width="1"/>
<circle cx="23" cy="23" r="1.5" fill="#832D15"/>
</svg>
<div>
<div class="header__wordmark">War Dungeon</div>
<div class="header__tag">est. 1881 — tabletop outfitters</div>
</div>
</div>
<nav class="header__nav" aria-label="Primary">
<a href="#" class="has-menu">Warhammer</a>
<a href="#">Dungeons & Dragons</a>
<a href="#">Tools</a>
<a href="#" class="has-menu">Learn</a>
<a href="#">Creators</a>
</nav>
<div class="header__utils" aria-label="Account utilities">
<svg viewBox="0 0 24 24" fill="none" aria-label="Search"><circle cx="10" cy="10" r="6" stroke="currentColor" stroke-width="1.5"/><path d="M14.5 14.5 L20 20" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
<svg viewBox="0 0 24 24" fill="none" aria-label="Account"><circle cx="12" cy="8" r="4" stroke="currentColor" stroke-width="1.5"/><path d="M4 21 C4 16 8 14 12 14 C16 14 20 16 20 21" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
<svg viewBox="0 0 24 24" fill="none" aria-label="Wishlist"><path d="M12 21 C7 17 3 13 3 8 C3 5 5 3 8 3 C10 3 11 4 12 6 C13 4 14 3 16 3 C19 3 21 5 21 8 C21 13 17 17 12 21 Z" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
<a href="#" class="header__basket" aria-label="Basket (3 items)">
<svg viewBox="0 0 24 24" fill="none"><path d="M4 7 L20 7 L18 19 L6 19 Z" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M9 7 V4 C9 2.5 10 2 12 2 C14 2 15 2.5 15 4 V7" stroke="currentColor" stroke-width="1.5" fill="none"/></svg>
<span class="badge">3</span>
</a>
</div>
</div>
</header>
<!-- ============ HERO ============ -->
<section class="hero" aria-label="Hero">
<div class="container--wide">
<div class="hero__frame">
<svg class="hero__bezel" viewBox="0 0 1100 600" preserveAspectRatio="none" aria-hidden="true">
<rect x="6" y="6" width="1088" height="588" stroke="#613F34" stroke-width="2" fill="none"/>
<rect x="14" y="14" width="1072" height="572" stroke="#613F34" stroke-width="0.8" fill="none"/>
<!-- corner cartouches -->
<g stroke="#613F34" stroke-width="1.2" fill="none">
<path d="M14 40 Q24 14 50 14 M14 38 Q22 22 38 22"/>
<path d="M1086 40 Q1076 14 1050 14 M1086 38 Q1078 22 1062 22"/>
<path d="M14 560 Q24 586 50 586 M14 562 Q22 578 38 578"/>
<path d="M1086 560 Q1076 586 1050 586 M1086 562 Q1078 578 1062 578"/>
<circle cx="32" cy="32" r="3" fill="#613F34"/>
<circle cx="1068" cy="32" r="3" fill="#613F34"/>
<circle cx="32" cy="568" r="3" fill="#613F34"/>
<circle cx="1068" cy="568" r="3" fill="#613F34"/>
</g>
</svg>
<div class="hero__inner">
<div>
<div class="hero__eyebrow">No. CXLVII — Spring Catalogue</div>
<h1 class="hero__title">Ten thousand years <em>of war,</em> and yours to command.</h1>
<p class="hero__sub">A working outfit for Warhammer and Dungeons & Dragons. Armies built, dice rolled, tools sharpened — everything a tabletop hobbyist needs, kept under one roof by folks who play the games themselves.</p>
<div class="hero__cta-row">
<button class="ribbon-cta" type="button" aria-label="Build your army">
<svg viewBox="0 0 280 60" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 30 L18 12 L262 12 L280 30 L262 48 L18 48 Z" fill="#832D15"/>
<path d="M0 30 L18 12 L262 12 L280 30 L262 48 L18 48 Z" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M22 16 L258 16 M22 44 L258 44" stroke="#FFFFFF" stroke-width="0.6" opacity=".4"/>
<path d="M0 30 L10 24 L10 36 Z M280 30 L270 24 L270 36 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Build Your Army</span>
</button>
<a href="#" class="ribbon-cta ribbon-cta--ghost ribbon-cta--small" aria-label="Shop new releases">
<svg viewBox="0 0 200 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M0 22 L8 18 L8 26 Z M200 22 L192 18 L192 26 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Shop New Releases →</span>
</a>
</div>
</div>
<div class="hero__scene" aria-hidden="true">
<!-- Etched battle scene: knight, dragon, banners, distant fortress -->
<svg viewBox="0 0 520 520">
<defs>
<pattern id="hatch" patternUnits="userSpaceOnUse" width="5" height="5" patternTransform="rotate(45)">
<line x1="0" y1="0" x2="0" y2="5" stroke="#613F34" stroke-width="0.5" opacity=".55"/>
</pattern>
<pattern id="hatch-light" patternUnits="userSpaceOnUse" width="6" height="6" patternTransform="rotate(135)">
<line x1="0" y1="0" x2="0" y2="6" stroke="#613F34" stroke-width="0.4" opacity=".3"/>
</pattern>
</defs>
<!-- Inner plate -->
<rect x="10" y="10" width="500" height="500" fill="none" stroke="#613F34" stroke-width="1"/>
<!-- Sky with sun-rays -->
<g stroke="#613F34" stroke-width="0.6" fill="none">
<circle cx="260" cy="160" r="58"/>
<circle cx="260" cy="160" r="50" stroke-dasharray="2 3"/>
<g>
<line x1="260" y1="60" x2="260" y2="90"/>
<line x1="260" y1="230" x2="260" y2="260"/>
<line x1="160" y1="160" x2="190" y2="160"/>
<line x1="330" y1="160" x2="360" y2="160"/>
<line x1="195" y1="95" x2="215" y2="115"/>
<line x1="305" y1="95" x2="325" y2="115"/>
<line x1="195" y1="225" x2="215" y2="205"/>
<line x1="305" y1="225" x2="325" y2="205"/>
</g>
</g>
<!-- Distant fortress on hill (right) -->
<g stroke="#613F34" stroke-width="0.9" fill="none">
<path d="M340 250 Q400 235 460 250 L460 280 L340 280 Z" fill="url(#hatch-light)"/>
<!-- Castle towers -->
<rect x="365" y="200" width="22" height="60" fill="#E4D3BF"/>
<path d="M365 200 L365 192 L370 192 L370 198 L376 198 L376 192 L381 192 L381 198 L387 198 L387 192" />
<rect x="395" y="180" width="28" height="80" fill="#E4D3BF"/>
<path d="M395 180 L395 170 L401 170 L401 178 L409 178 L409 170 L415 170 L415 178 L423 178 L423 170" />
<rect x="431" y="210" width="20" height="50" fill="#E4D3BF"/>
<path d="M431 210 L431 202 L436 202 L436 208 L442 208 L442 202 L447 202 L447 208 L451 208"/>
<!-- Castle windows -->
<rect x="370" y="215" width="3" height="6" fill="#613F34"/>
<rect x="379" y="225" width="3" height="6" fill="#613F34"/>
<rect x="402" y="200" width="4" height="8" fill="#613F34"/>
<rect x="412" y="215" width="4" height="8" fill="#613F34"/>
<!-- Flags -->
<line x1="409" y1="170" x2="409" y2="155"/>
<path d="M409 155 L420 158 L417 162 L420 166 L409 169" fill="#832D15"/>
</g>
<!-- Distant mountains (left) -->
<g stroke="#613F34" stroke-width="0.8" fill="none">
<path d="M50 280 L100 220 L130 250 L170 200 L210 260 L240 240 L260 280" fill="url(#hatch-light)"/>
<path d="M100 220 L115 235 M170 200 L185 220" stroke-width="0.5"/>
</g>
<!-- Foreground ground line / parchment hatch -->
<line x1="20" y1="320" x2="500" y2="320" stroke="#613F34" stroke-width="1.2"/>
<g stroke="#613F34" stroke-width="0.4" opacity=".7">
<line x1="40" y1="328" x2="80" y2="328"/>
<line x1="100" y1="328" x2="140" y2="328"/>
<line x1="160" y1="335" x2="220" y2="335"/>
<line x1="260" y1="328" x2="310" y2="328"/>
<line x1="340" y1="335" x2="400" y2="335"/>
<line x1="420" y1="328" x2="470" y2="328"/>
</g>
<!-- Dragon swooping (upper left) -->
<g stroke="#613F34" stroke-width="1.1" fill="none">
<path d="M70 110 Q90 90 110 100 Q130 80 150 95 L160 110 L150 130 Q120 140 100 130 Q80 135 70 110 Z" fill="url(#hatch)"/>
<!-- Wing membranes -->
<path d="M150 95 L175 70 L165 95 L185 80 L170 102 L195 90 L175 110"/>
<path d="M70 110 L45 95 L60 115 L40 110 L55 125 L35 125 L55 135"/>
<!-- Head + tail -->
<path d="M150 115 L175 118 L185 112 L175 124 L165 124"/>
<circle cx="178" cy="116" r="1.5" fill="#613F34"/>
<path d="M85 122 Q60 145 50 175 Q70 180 80 165"/>
<!-- Fire breath -->
<path d="M188 115 L210 110 L205 118 L222 116 L212 125 L228 124" stroke-width="0.9"/>
</g>
<!-- Central knight figure -->
<g stroke="#613F34" stroke-width="1.3" fill="none">
<!-- Standard pole -->
<line x1="218" y1="160" x2="218" y2="310"/>
<!-- Banner -->
<path d="M218 160 L262 156 L256 178 L268 200 L218 196 Z" fill="#E4D3BF"/>
<path d="M232 170 L252 170 M232 178 L248 178 M232 186 L252 186" stroke-width="0.6"/>
<circle cx="240" cy="178" r="6" stroke-width="0.7"/>
<path d="M236 176 L244 180 M244 176 L236 180" stroke-width="0.6"/>
<!-- Body -->
<path d="M210 230 L240 230 L246 280 L240 318 L210 318 L204 280 Z" fill="url(#hatch)"/>
<!-- Pauldrons -->
<path d="M204 232 Q194 226 188 240 L196 248 Z" fill="#E4D3BF"/>
<path d="M246 232 Q256 226 262 240 L254 248 Z" fill="#E4D3BF"/>
<!-- Cuirass plate lines -->
<path d="M210 250 L240 250 M212 262 L238 262 M214 274 L236 274"/>
<!-- Belt -->
<rect x="208" y="282" width="34" height="6" fill="#832D15" stroke-width="0.6"/>
<circle cx="225" cy="285" r="2" fill="#E4D3BF" stroke="#613F34" stroke-width="0.5"/>
<!-- Helm -->
<path d="M214 218 L214 200 Q214 188 225 188 Q236 188 236 200 L236 218 Z" fill="#E4D3BF"/>
<path d="M214 206 L236 206" />
<rect x="218" y="208" width="14" height="4" fill="#613F34"/>
<path d="M225 188 L225 178 L230 182 L225 188" fill="#832D15"/>
<!-- Shield -->
<path d="M270 240 Q300 238 300 260 Q300 290 282 305 Q264 290 264 260 Q264 238 270 240 Z" fill="#E4D3BF"/>
<path d="M282 248 L282 295 M268 268 L296 268" stroke-width="0.8"/>
<path d="M278 258 L286 258 L286 266 L278 266 Z" fill="#832D15" stroke-width="0.6"/>
<!-- Sword raised -->
<path d="M188 240 L160 145 L155 148 L185 244" fill="#E4D3BF"/>
<line x1="156" y1="148" x2="195" y2="135" stroke-width="1.4"/>
<circle cx="161" cy="146" r="3" fill="#613F34"/>
</g>
<!-- Right-side dwarf with hammer -->
<g stroke="#613F34" stroke-width="1.1" fill="none">
<path d="M340 260 L362 260 L366 305 L362 320 L340 320 L336 305 Z" fill="url(#hatch)"/>
<!-- Beard -->
<path d="M338 246 Q351 280 364 246 Z" fill="#E4D3BF"/>
<path d="M342 250 L342 268 M346 250 L346 270 M350 250 L350 272 M354 250 L354 270 M358 250 L358 268"/>
<!-- Helm -->
<path d="M338 246 Q338 232 351 232 Q364 232 364 246 Z" fill="#E4D3BF"/>
<path d="M345 232 L345 226 L357 226 L357 232" stroke-width="0.8"/>
<!-- Eyes line -->
<line x1="344" y1="240" x2="348" y2="240"/>
<line x1="354" y1="240" x2="358" y2="240"/>
<!-- Hammer -->
<line x1="370" y1="280" x2="395" y2="220" stroke-width="1.3"/>
<rect x="385" y="200" width="22" height="20" fill="#E4D3BF" stroke-width="1.2"/>
<line x1="391" y1="200" x2="391" y2="220"/>
<line x1="401" y1="200" x2="401" y2="220"/>
</g>
<!-- Left-side soldier with spear -->
<g stroke="#613F34" stroke-width="1.0" fill="none">
<path d="M120 270 L138 270 L142 308 L138 318 L120 318 L116 308 Z" fill="url(#hatch)"/>
<circle cx="129" cy="262" r="9" fill="#E4D3BF"/>
<path d="M120 260 L120 252 L138 252 L138 260" stroke-width="0.8"/>
<line x1="125" y1="262" x2="127" y2="262"/>
<line x1="131" y1="262" x2="133" y2="262"/>
<!-- Spear -->
<line x1="100" y1="320" x2="118" y2="180" stroke-width="1.2"/>
<path d="M118 180 L115 165 L121 165 Z" fill="#613F34"/>
</g>
<!-- D&D wizard right -->
<g stroke="#613F34" stroke-width="1.0" fill="none">
<path d="M412 262 Q422 240 432 262 L438 318 L406 318 Z" fill="url(#hatch)"/>
<!-- Pointed hood -->
<path d="M412 262 Q422 220 432 262 Z" fill="#E4D3BF"/>
<path d="M422 220 Q424 215 425 218" stroke-width="0.7"/>
<!-- Face -->
<path d="M415 268 Q422 270 429 268" stroke-width="0.7"/>
<!-- Long beard -->
<path d="M418 274 Q422 296 426 274 M418 284 Q422 300 426 284" stroke-width="0.7"/>
<!-- Staff with orb -->
<line x1="445" y1="318" x2="450" y2="220" stroke-width="1.2"/>
<circle cx="451" cy="216" r="6" fill="#E4D3BF"/>
<circle cx="451" cy="216" r="3" fill="#613F34"/>
<!-- Star sparkle around orb -->
<g stroke-width="0.6">
<line x1="451" y1="206" x2="451" y2="200"/>
<line x1="461" y1="216" x2="467" y2="216"/>
<line x1="445" y1="210" x2="441" y2="206"/>
<line x1="457" y1="210" x2="461" y2="206"/>
</g>
</g>
<!-- Foreground rocks + dice -->
<g stroke="#613F34" stroke-width="0.9" fill="none">
<path d="M30 360 Q60 340 90 360 L92 380 L28 380 Z" fill="url(#hatch-light)"/>
<path d="M430 380 Q460 360 490 380 L490 400 L430 400 Z" fill="url(#hatch-light)"/>
<!-- A d20 die -->
<polygon points="200,420 220,420 230,438 220,456 200,456 190,438" fill="#E4D3BF"/>
<polygon points="210,420 230,438 210,456 190,438" stroke-width="0.6"/>
<text x="210" y="442" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle">20</text>
<!-- A smaller d6 -->
<rect x="290" y="430" width="22" height="22" transform="rotate(-12 301 441)" fill="#E4D3BF"/>
<g transform="rotate(-12 301 441)" stroke-width="0.6">
<line x1="290" y1="436" x2="312" y2="436"/>
<line x1="290" y1="446" x2="312" y2="446"/>
<circle cx="296" cy="433" r="1" fill="#613F34"/>
<circle cx="306" cy="433" r="1" fill="#613F34"/>
<circle cx="301" cy="441" r="1" fill="#613F34"/>
<circle cx="296" cy="449" r="1" fill="#613F34"/>
<circle cx="306" cy="449" r="1" fill="#613F34"/>
</g>
</g>
<!-- Caption banner at bottom -->
<g stroke="#613F34" stroke-width="1" fill="none">
<path d="M120 478 L400 478 L410 488 L400 498 L120 498 L110 488 Z" fill="#E4D3BF"/>
<path d="M110 488 L100 484 L100 492 Z" fill="#613F34"/>
<path d="M410 488 L420 484 L420 492 Z" fill="#613F34"/>
<text x="260" y="492" font-family="serif" font-style="italic" font-size="14" fill="#613F34" text-anchor="middle">PLATE I. — The Outfit Assembled</text>
</g>
</svg>
</div>
</div>
</div>
</div>
</section>
<!-- ============ TRUST STRIP ============ -->
<section class="trust" aria-label="Service guarantees">
<div class="trust__grid">
<div class="trust__cell">
<svg class="trust__icon" viewBox="0 0 60 60" fill="none" aria-hidden="true">
<rect x="8" y="22" width="36" height="24" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M8 22 L26 12 L44 22 M8 34 L44 34 M26 22 L26 46" stroke="#613F34" stroke-width="1.2" fill="none"/>
<circle cx="14" cy="50" r="4" stroke="#613F34" stroke-width="1.5" fill="none"/>
<circle cx="38" cy="50" r="4" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M44 28 L56 28 L52 38 L44 38" stroke="#613F34" stroke-width="1.5" fill="none"/>
</svg>
<div class="trust__title">Free UK shipping over £75</div>
<div class="trust__body">Packed by hand, posted next morning. Express options at checkout for the impatient.</div>
</div>
<div class="trust__cell">
<svg class="trust__icon" viewBox="0 0 60 60" fill="none" aria-hidden="true">
<circle cx="30" cy="30" r="22" stroke="#613F34" stroke-width="1.5" fill="none"/>
<circle cx="30" cy="30" r="18" stroke="#613F34" stroke-width="0.7" fill="none"/>
<path d="M30 14 L30 30 L42 36" stroke="#613F34" stroke-width="1.5" stroke-linecap="round" fill="none"/>
<g stroke="#613F34" stroke-width="0.8">
<line x1="30" y1="9" x2="30" y2="13"/><line x1="30" y1="47" x2="30" y2="51"/>
<line x1="9" y1="30" x2="13" y2="30"/><line x1="47" y1="30" x2="51" y2="30"/>
</g>
<text x="30" y="42" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle" font-style="italic">XXX</text>
</svg>
<div class="trust__title">Thirty days to think again</div>
<div class="trust__body">Unopened kits, full refund. Painted them already? Drop us a line — we'll work it out.</div>
</div>
<div class="trust__cell">
<svg class="trust__icon" viewBox="0 0 60 60" fill="none" aria-hidden="true">
<!-- Crossed swords -->
<g stroke="#613F34" stroke-width="1.5" fill="none">
<line x1="14" y1="14" x2="46" y2="46"/>
<line x1="46" y1="14" x2="14" y2="46"/>
<circle cx="30" cy="30" r="3" fill="#613F34"/>
<path d="M12 12 L8 16 L12 20 L16 16 Z" fill="#E4D3BF"/>
<path d="M48 12 L52 16 L48 20 L44 16 Z" fill="#E4D3BF"/>
<path d="M12 48 L8 44 L12 40 L16 44 Z" fill="#E4D3BF"/>
<path d="M48 48 L52 44 L48 40 L44 44 Z" fill="#E4D3BF"/>
</g>
</svg>
<div class="trust__title">40K · AoS · Old World · D&D</div>
<div class="trust__body">Four game systems, one outfit. Every shelf curated by players who turn up to tournament weekends.</div>
</div>
<div class="trust__cell">
<svg class="trust__icon" viewBox="0 0 60 60" fill="none" aria-hidden="true">
<path d="M30 4 L52 12 L52 30 Q52 46 30 56 Q8 46 8 30 L8 12 Z" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M30 8 L48 14 L48 30 Q48 44 30 52 Q12 44 12 30 L12 14 Z" stroke="#613F34" stroke-width="0.6" fill="none"/>
<text x="30" y="35" font-family="serif" font-size="20" font-weight="bold" fill="#832D15" text-anchor="middle">N</text>
<path d="M22 40 L38 40" stroke="#613F34" stroke-width="0.8"/>
</svg>
<div class="trust__title">A Nerdworks Brand</div>
<div class="trust__body">Family-run, four storefronts. Points earned here spend at any sister house in the network.</div>
</div>
</div>
</section>
<!-- ============ TOOLS TEASER ============ -->
<section class="tools" aria-label="In-house tools">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ II. — The Engine Room</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 600 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L500 12 Q550 12 570 30 L580 40 L570 50 Q550 78 500 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L500 22 Q542 22 562 38 L568 42 L562 48 Q542 68 500 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M586 40 L600 32 L596 40 L600 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">Tools of the Trade</h2>
</div>
<p class="eng-head__sub">Two contraptions of our own making — built because the shop floor needed them, then opened up for everyone.</p>
</div>
<div class="tools__grid">
<article class="tool-card">
<svg class="tool-card__frame" viewBox="0 0 400 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="4" y="4" width="392" height="452" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="12" y="12" width="376" height="436" stroke="#613F34" stroke-width="0.5" fill="none"/>
<g stroke="#613F34" stroke-width="1" fill="#E4D3BF">
<circle cx="20" cy="20" r="6"/><circle cx="380" cy="20" r="6"/>
<circle cx="20" cy="440" r="6"/><circle cx="380" cy="440" r="6"/>
</g>
<g stroke="#613F34" stroke-width="0.8">
<line x1="14" y1="20" x2="26" y2="20"/><line x1="20" y1="14" x2="20" y2="26"/>
<line x1="374" y1="20" x2="386" y2="20"/><line x1="380" y1="14" x2="380" y2="26"/>
<line x1="14" y1="440" x2="26" y2="440"/><line x1="20" y1="434" x2="20" y2="446"/>
<line x1="374" y1="440" x2="386" y2="440"/><line x1="380" y1="434" x2="380" y2="446"/>
</g>
</svg>
<div class="tool-card__inner">
<div class="tool-card__illus">
<svg viewBox="0 0 320 180" aria-hidden="true">
<!-- Stack of unit cards with crossed swords + dice -->
<g stroke="#613F34" stroke-width="1.3" fill="none">
<rect x="40" y="40" width="100" height="120" fill="#EADBC6" transform="rotate(-8 90 100)"/>
<rect x="80" y="30" width="100" height="120" fill="#EADBC6"/>
<rect x="120" y="36" width="100" height="120" fill="#EADBC6" transform="rotate(6 170 96)"/>
<!-- Top card detail -->
<line x1="88" y1="50" x2="172" y2="50" stroke-width="0.9"/>
<line x1="88" y1="58" x2="160" y2="58" stroke-width="0.6"/>
<rect x="88" y="68" width="84" height="40" stroke-width="0.7" fill="url(#hatch-light)"/>
<circle cx="130" cy="88" r="10" fill="#E4D3BF"/>
<path d="M124 88 L130 82 L136 88 L136 96 L124 96 Z" stroke-width="0.7"/>
<line x1="88" y1="118" x2="172" y2="118" stroke-width="0.6"/>
<line x1="88" y1="126" x2="150" y2="126" stroke-width="0.6"/>
<line x1="88" y1="134" x2="160" y2="134" stroke-width="0.6"/>
<!-- Dice on stack -->
<rect x="232" y="92" width="36" height="36" fill="#E4D3BF" transform="rotate(15 250 110)"/>
<g transform="rotate(15 250 110)" stroke-width="0.6">
<line x1="232" y1="104" x2="268" y2="104"/>
<line x1="232" y1="116" x2="268" y2="116"/>
<circle cx="240" cy="98" r="1.3" fill="#613F34"/>
<circle cx="260" cy="98" r="1.3" fill="#613F34"/>
<circle cx="250" cy="110" r="1.3" fill="#613F34"/>
<circle cx="240" cy="122" r="1.3" fill="#613F34"/>
<circle cx="260" cy="122" r="1.3" fill="#613F34"/>
</g>
<!-- Quill -->
<path d="M210 50 L290 30 L286 38 L222 58 Z" fill="#E4D3BF"/>
<line x1="210" y1="50" x2="200" y2="60"/>
<!-- Crossed swords behind -->
<g stroke-width="1" opacity=".6">
<line x1="20" y1="20" x2="100" y2="160"/>
<line x1="120" y1="20" x2="40" y2="160"/>
</g>
</g>
</svg>
</div>
<div class="tool-card__eyebrow">Available now</div>
<h3 class="tool-card__title">Army Builder</h3>
<p class="tool-card__body">Pick a faction, set your points limit, and let the builder track every wound, weapon, and detachment rule as you go. Save loadouts to your account; drop the whole list into your basket in one move.</p>
<a href="#" class="ribbon-cta ribbon-cta--small" aria-label="Open Army Builder">
<svg viewBox="0 0 200 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" fill="#832D15"/>
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" stroke="#613F34" stroke-width="1.2" fill="none"/>
<path d="M0 22 L8 18 L8 26 Z M200 22 L192 18 L192 26 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Open the Builder</span>
</a>
</div>
</article>
<article class="tool-card">
<svg class="tool-card__frame" viewBox="0 0 400 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="4" y="4" width="392" height="452" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="12" y="12" width="376" height="436" stroke="#613F34" stroke-width="0.5" fill="none"/>
<g stroke="#613F34" stroke-width="1" fill="#E4D3BF">
<circle cx="20" cy="20" r="6"/><circle cx="380" cy="20" r="6"/>
<circle cx="20" cy="440" r="6"/><circle cx="380" cy="440" r="6"/>
</g>
<g stroke="#613F34" stroke-width="0.8">
<line x1="14" y1="20" x2="26" y2="20"/><line x1="20" y1="14" x2="20" y2="26"/>
<line x1="374" y1="20" x2="386" y2="20"/><line x1="380" y1="14" x2="380" y2="26"/>
<line x1="14" y1="440" x2="26" y2="440"/><line x1="20" y1="434" x2="20" y2="446"/>
<line x1="374" y1="440" x2="386" y2="440"/><line x1="380" y1="434" x2="380" y2="446"/>
</g>
</svg>
<div class="tool-card__inner">
<div class="tool-card__illus">
<svg viewBox="0 0 320 180" aria-hidden="true">
<!-- Hex grid map with figures + speech ribbon -->
<g stroke="#613F34" stroke-width="1" fill="none">
<g fill="#EADBC6" stroke-width="0.9">
<polygon points="40,80 60,68 80,80 80,104 60,116 40,104"/>
<polygon points="80,80 100,68 120,80 120,104 100,116 80,104"/>
<polygon points="120,80 140,68 160,80 160,104 140,116 120,104"/>
<polygon points="160,80 180,68 200,80 200,104 180,116 160,104"/>
<polygon points="200,80 220,68 240,80 240,104 220,116 200,104"/>
<polygon points="60,116 80,104 100,116 100,140 80,152 60,140"/>
<polygon points="100,116 120,104 140,116 140,140 120,152 100,140"/>
<polygon points="140,116 160,104 180,116 180,140 160,152 140,140"/>
<polygon points="180,116 200,104 220,116 220,140 200,152 180,140"/>
</g>
<!-- Figures on the grid -->
<g stroke-width="1.2" fill="#613F34">
<circle cx="100" cy="90" r="4"/>
<path d="M100 94 L100 106 M96 100 L104 100" stroke="#613F34" stroke-width="1.2" fill="none"/>
<circle cx="180" cy="128" r="4" fill="#832D15"/>
<path d="M180 132 L180 144 M176 138 L184 138" stroke="#832D15" stroke-width="1.2" fill="none"/>
<circle cx="140" cy="90" r="3.5"/>
</g>
<!-- Speech ribbon -->
<g stroke-width="1" fill="#E4D3BF">
<path d="M240 30 L300 30 L308 40 L300 50 L266 50 L260 60 L260 50 L240 50 Z"/>
<line x1="248" y1="38" x2="298" y2="38" stroke-width="0.5"/>
<line x1="248" y1="44" x2="296" y2="44" stroke-width="0.5"/>
</g>
<!-- Movement arrows -->
<g stroke-width="1" fill="none">
<path d="M120 90 Q140 70 158 88"/>
<path d="M154 88 L158 88 L158 84"/>
</g>
</g>
</svg>
</div>
<div class="tool-card__eyebrow">Coming late 1882</div>
<h3 class="tool-card__title">Battle Simulator</h3>
<p class="tool-card__body">Two of your saved armies, played out on a top-down board with live commentary in the side panel. Practice match-ups before the tournament — or pit your roster against the house.</p>
<span class="tool-card__badge">In the Forge</span>
</div>
</article>
</div>
</div>
</section>
<!-- ============ CHOOSE YOUR GAME ============ -->
<section class="games" aria-label="Choose your game">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ III. — The Houses</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 720 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L620 12 Q670 12 690 30 L700 40 L690 50 Q670 78 620 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L620 22 Q662 22 682 38 L688 42 L682 48 Q662 68 620 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M706 40 L720 32 L716 40 L720 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">Choose Your Game</h2>
</div>
<p class="eng-head__sub">Six tables, six neighbourhoods. Step through whichever door you came for — or wander between them, we don't mind.</p>
</div>
<div class="games__grid">
<!-- Category Card factory below -->
<!-- W40K -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.5" fill="none">
<!-- Power-armour pauldron with skull -->
<path d="M50 90 Q40 50 100 30 Q160 50 150 90 L150 130 L50 130 Z" fill="#EADBC6"/>
<path d="M58 86 Q50 56 100 40 Q150 56 142 86" stroke-width="0.6"/>
<line x1="100" y1="30" x2="100" y2="130"/>
<!-- Skull -->
<circle cx="100" cy="78" r="20" fill="#E4D3BF"/>
<ellipse cx="92" cy="80" rx="4" ry="6" fill="#613F34"/>
<ellipse cx="108" cy="80" rx="4" ry="6" fill="#613F34"/>
<path d="M93 92 L98 96 L102 92 L107 96" stroke-width="1"/>
<path d="M88 96 L88 102 L92 102 L92 96 M108 96 L108 102 L112 102 L112 96" stroke-width="0.6"/>
<!-- Bolt accents -->
<circle cx="68" cy="120" r="3" fill="#613F34"/>
<circle cx="132" cy="120" r="3" fill="#613F34"/>
<!-- Aquila wings -->
<path d="M50 100 Q30 90 18 110 Q34 108 50 116" stroke-width="0.9"/>
<path d="M150 100 Q170 90 182 110 Q166 108 150 116" stroke-width="0.9"/>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>Warhammer 40,000</span>
</div>
<p class="cat-card__body">Grimdark sci-fi in the 41st millennium. Combat Patrols, Codexes, Detachments — from first marine to grand tournament list.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
<!-- AoS -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.4" fill="none">
<!-- Winged knight with hammer -->
<path d="M70 70 L100 30 L130 70 L130 120 L70 120 Z" fill="#EADBC6"/>
<circle cx="100" cy="60" r="12" fill="#E4D3BF"/>
<path d="M88 50 L94 38 L98 50 M102 50 L106 38 L112 50" stroke-width="1.1"/>
<line x1="94" y1="60" x2="98" y2="60"/>
<line x1="102" y1="60" x2="106" y2="60"/>
<!-- Wings -->
<path d="M70 70 Q40 60 24 86 Q40 84 56 92 Q34 100 22 124 Q44 116 64 110" stroke-width="1.1"/>
<path d="M130 70 Q160 60 176 86 Q160 84 144 92 Q166 100 178 124 Q156 116 136 110" stroke-width="1.1"/>
<!-- Hammer -->
<line x1="100" y1="80" x2="100" y2="155" stroke-width="1.5"/>
<rect x="84" y="135" width="32" height="14" fill="#E4D3BF"/>
<line x1="92" y1="135" x2="92" y2="149"/>
<line x1="108" y1="135" x2="108" y2="149"/>
<!-- Lightning -->
<path d="M156 16 L150 30 L156 30 L148 46" stroke-width="1.1"/>
<path d="M44 16 L50 30 L44 30 L52 46" stroke-width="1.1"/>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>Age of Sigmar</span>
</div>
<p class="cat-card__body">High fantasy across the Mortal Realms. Spearhead boxes, Battletomes, scenery — everything from a starter Stormcast to a Slaves to Darkness horde.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
<!-- Old World -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<!-- Knight on horseback -->
<!-- Horse -->
<path d="M40 110 Q42 90 60 86 L100 86 Q130 86 145 92 Q160 95 165 110 L160 120 L150 115 L150 134 L138 134 L138 118 L80 118 L80 134 L68 134 L68 118 L52 122 Z" fill="#EADBC6"/>
<!-- Mane -->
<path d="M58 86 Q56 80 60 76 Q62 80 64 86 Q66 80 70 78 Q72 82 74 88"/>
<!-- Head + tail -->
<path d="M40 110 L30 100 L32 92 L42 96"/>
<circle cx="32" cy="98" r="1" fill="#613F34"/>
<path d="M165 110 Q180 100 184 116 Q170 110 168 118"/>
<!-- Knight torso -->
<path d="M88 76 L106 60 L120 76 L120 95 L88 95 Z" fill="#E4D3BF"/>
<circle cx="104" cy="60" r="10" fill="#E4D3BF"/>
<path d="M96 56 L96 50 L114 50 L114 56" stroke-width="0.9"/>
<line x1="100" y1="62" x2="102" y2="62"/>
<line x1="108" y1="62" x2="110" y2="62"/>
<!-- Lance + pennant -->
<line x1="84" y1="40" x2="170" y2="106" stroke-width="1.4"/>
<path d="M84 40 L70 38 L78 44 L66 50 L80 50 L72 56 L86 50 Z" fill="#832D15"/>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>The Old World</span>
</div>
<p class="cat-card__body">Ranks, files, and proper standards. Bretonnians, Empire, Orcs & Goblins, Tomb Kings — the classics, back where they belong.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
<!-- D&D -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<!-- Dragon coiled around d20 -->
<polygon points="100,30 130,46 142,80 130,114 100,130 70,114 58,80 70,46" fill="#EADBC6"/>
<polygon points="100,42 124,52 134,80 124,108 100,118 76,108 66,80 76,52" stroke-width="0.7"/>
<text x="100" y="86" font-family="serif" font-size="22" fill="#613F34" text-anchor="middle">20</text>
<!-- Dragon body wrapping -->
<path d="M40 70 Q20 60 26 40 Q40 36 56 50" stroke-width="1.3"/>
<path d="M56 50 Q52 30 78 18 Q82 28 76 38" stroke-width="1.3"/>
<path d="M160 70 Q180 80 174 100 Q160 104 144 90" stroke-width="1.3"/>
<!-- Dragon head -->
<path d="M28 44 L18 38 L24 32 L34 38 Z" fill="#E4D3BF"/>
<circle cx="22" cy="36" r="1" fill="#613F34"/>
<!-- Wing -->
<path d="M150 30 Q166 14 184 24 Q170 32 162 46" stroke-width="1"/>
<path d="M168 32 L172 26 M176 28 L178 22"/>
<!-- Sparkles -->
<g stroke-width="0.8">
<path d="M40 130 L40 138 M36 134 L44 134"/>
<path d="M170 134 L170 142 M166 138 L174 138"/>
</g>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>Dungeons & Dragons</span>
</div>
<p class="cat-card__body">Rulebooks, modules, dice that roll true. Player handbooks for newcomers; DM screens, minis and scenery for the long-running table.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
<!-- Hobby Supplies -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<!-- Crossed clippers + file + tweezers -->
<!-- Side-cutters -->
<path d="M30 130 L60 90 L72 96 L46 138 Z" fill="#EADBC6" transform="rotate(-15 50 110)"/>
<path d="M60 90 L82 76 L96 82 L72 96 Z" fill="#E4D3BF" transform="rotate(-15 78 86)"/>
<circle cx="76" cy="92" r="3" fill="#613F34" transform="rotate(-15 78 86)"/>
<!-- File -->
<line x1="170" y1="130" x2="100" y2="60" stroke-width="1.6"/>
<rect x="92" y="40" width="22" height="32" fill="#E4D3BF" transform="rotate(45 103 56)"/>
<g transform="rotate(45 103 56)" stroke-width="0.6">
<line x1="92" y1="48" x2="114" y2="48"/>
<line x1="92" y1="56" x2="114" y2="56"/>
<line x1="92" y1="64" x2="114" y2="64"/>
</g>
<!-- Tweezers -->
<path d="M126 30 L140 80 L132 82 L120 36 Z" fill="#EADBC6"/>
<path d="M154 30 L140 80 L148 82 L160 36 Z" fill="#EADBC6"/>
<circle cx="140" cy="22" r="4" fill="#613F34"/>
<!-- Wee drop of glue -->
<ellipse cx="80" cy="138" rx="6" ry="3" fill="#E4D3BF"/>
<path d="M76 136 L84 136" stroke-width="0.5"/>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>Hobby Supplies</span>
</div>
<p class="cat-card__body">Side-cutters, files, glue, magnets and movement trays — the unglamorous gear that decides whether your minis end up sharp or shaggy.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
<!-- Paints -->
<article class="cat-card">
<svg class="cat-card__frame" viewBox="0 0 400 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M370 3 Q397 3 397 30 M3 330 Q3 357 30 357 M370 357 Q397 357 397 330" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="cat-card__inner">
<div class="cat-card__illus">
<svg viewBox="0 0 200 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<!-- Row of paint pots + brush -->
<g transform="translate(20 60)">
<rect x="0" y="20" width="28" height="50" fill="#EADBC6"/>
<path d="M0 30 L28 30" stroke-width="0.6"/>
<rect x="2" y="6" width="24" height="16" fill="#E4D3BF"/>
<rect x="6" y="0" width="16" height="8" fill="#613F34"/>
</g>
<g transform="translate(56 50)">
<rect x="0" y="20" width="28" height="60" fill="#EADBC6"/>
<path d="M0 30 L28 30" stroke-width="0.6"/>
<rect x="2" y="6" width="24" height="16" fill="#E4D3BF"/>
<rect x="6" y="0" width="16" height="8" fill="#832D15"/>
</g>
<g transform="translate(92 56)">
<rect x="0" y="20" width="28" height="54" fill="#EADBC6"/>
<path d="M0 30 L28 30" stroke-width="0.6"/>
<rect x="2" y="6" width="24" height="16" fill="#E4D3BF"/>
<rect x="6" y="0" width="16" height="8" fill="#613F34"/>
</g>
<g transform="translate(128 46)">
<rect x="0" y="20" width="28" height="64" fill="#EADBC6"/>
<path d="M0 30 L28 30" stroke-width="0.6"/>
<rect x="2" y="6" width="24" height="16" fill="#E4D3BF"/>
<rect x="6" y="0" width="16" height="8" fill="#832D15"/>
</g>
<!-- Brush across -->
<line x1="20" y1="135" x2="170" y2="100" stroke-width="1.5"/>
<path d="M170 100 L186 92 L188 102 L172 110 Z" fill="#E4D3BF"/>
<path d="M186 92 L196 86 L194 96 Z" fill="#832D15"/>
<!-- Splash -->
<circle cx="40" cy="138" r="1.5" fill="#832D15"/>
<circle cx="48" cy="143" r="1" fill="#832D15"/>
</g>
</svg>
</div>
<div class="cat-card__ribbon">
<svg viewBox="0 0 240 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L20 6 L220 6 L240 22 L220 38 L20 38 Z" fill="#832D15" stroke="#613F34" stroke-width="1.2"/>
<path d="M0 22 L10 18 L10 26 Z M240 22 L230 18 L230 26 Z" fill="#613F34"/>
</svg>
<span>Paints & Brushes</span>
</div>
<p class="cat-card__body">Citadel, Vallejo, Army Painter — primers, contrasts, washes, metallics. Brushes from rough-in synthetics to Series 7 Kolinsky sable.</p>
<a href="#" class="cat-card__cta">Step inside →</a>
</div>
</article>
</div>
</div>
</section>
<!-- ============ FAN FAVOURITES ============ -->
<section class="favs" aria-label="Fan favourites">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ IV. — From the Workbench</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 600 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L500 12 Q550 12 570 30 L580 40 L570 50 Q550 78 500 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L500 22 Q542 22 562 38 L568 42 L562 48 Q542 68 500 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M586 40 L600 32 L596 40 L600 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">Fan Favourites</h2>
</div>
<p class="eng-head__sub">What's been walking out the door this fortnight — picked by the shop staff, not the algorithm.</p>
</div>
<div class="favs__grid">
<article class="product-card">
<svg class="product-card__frame" viewBox="0 0 300 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="294" height="454" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="9" y="9" width="282" height="442" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<svg class="product-card__coin" viewBox="0 0 50 50" aria-hidden="true">
<circle cx="25" cy="25" r="23" fill="#F4A479" stroke="#613F34" stroke-width="1.5"/>
<circle cx="25" cy="25" r="19" fill="none" stroke="#613F34" stroke-width="0.6"/>
<text x="25" y="22" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle" font-weight="bold">EARN</text>
<text x="25" y="34" font-family="serif" font-size="14" fill="#613F34" text-anchor="middle" font-weight="bold">85</text>
<text x="25" y="42" font-family="serif" font-size="6" fill="#613F34" text-anchor="middle">PTS</text>
</svg>
<div class="product-card__inner">
<div class="product-card__illus">
<svg viewBox="0 0 200 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<rect x="30" y="60" width="140" height="110" fill="#EADBC6"/>
<path d="M30 60 L60 30 L200 30 L170 60" fill="#E4D3BF"/>
<line x1="60" y1="30" x2="60" y2="170"/>
<line x1="200" y1="30" x2="170" y2="60"/>
<line x1="170" y1="60" x2="170" y2="170"/>
<rect x="45" y="80" width="110" height="60" fill="#E4D3BF" stroke-width="0.7"/>
<text x="100" y="100" font-family="serif" font-size="8" fill="#613F34" text-anchor="middle">COMBAT PATROL</text>
<text x="100" y="118" font-family="serif" font-size="13" fill="#832D15" text-anchor="middle" font-weight="bold">SPACE MARINES</text>
<line x1="55" y1="128" x2="145" y2="128" stroke-width="0.5"/>
<text x="100" y="138" font-family="serif" font-size="7" fill="#613F34" text-anchor="middle" font-style="italic">25 miniatures</text>
<circle cx="100" cy="50" r="6" fill="#E4D3BF"/>
<path d="M94 56 L106 56 L108 70 L92 70 Z" fill="#E4D3BF"/>
</g>
</svg>
</div>
<div class="product-card__game">Warhammer 40,000</div>
<h3 class="product-card__title">Combat Patrol: Space Marines</h3>
<div class="product-card__rating">
<span class="product-card__stars">★★★★★</span>
<span>4.9 (218)</span>
</div>
<div class="product-card__row">
<div class="product-card__price">£85.00</div>
<a href="#" class="product-card__quick">Quick view →</a>
</div>
</div>
</article>
<article class="product-card">
<svg class="product-card__frame" viewBox="0 0 300 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="294" height="454" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="9" y="9" width="282" height="442" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<svg class="product-card__coin" viewBox="0 0 50 50" aria-hidden="true">
<circle cx="25" cy="25" r="23" fill="#F4A479" stroke="#613F34" stroke-width="1.5"/>
<circle cx="25" cy="25" r="19" fill="none" stroke="#613F34" stroke-width="0.6"/>
<text x="25" y="22" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle" font-weight="bold">EARN</text>
<text x="25" y="34" font-family="serif" font-size="14" fill="#613F34" text-anchor="middle" font-weight="bold">75</text>
<text x="25" y="42" font-family="serif" font-size="6" fill="#613F34" text-anchor="middle">PTS</text>
</svg>
<div class="product-card__inner">
<div class="product-card__illus">
<svg viewBox="0 0 200 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<rect x="30" y="60" width="140" height="110" fill="#EADBC6"/>
<path d="M30 60 L60 30 L200 30 L170 60" fill="#E4D3BF"/>
<line x1="60" y1="30" x2="60" y2="170"/>
<line x1="170" y1="60" x2="170" y2="170"/>
<rect x="45" y="80" width="110" height="60" fill="#E4D3BF" stroke-width="0.7"/>
<text x="100" y="100" font-family="serif" font-size="8" fill="#613F34" text-anchor="middle">SPEARHEAD</text>
<text x="100" y="118" font-family="serif" font-size="13" fill="#832D15" text-anchor="middle" font-weight="bold">STORMCAST</text>
<line x1="55" y1="128" x2="145" y2="128" stroke-width="0.5"/>
<text x="100" y="138" font-family="serif" font-size="7" fill="#613F34" text-anchor="middle" font-style="italic">12 miniatures</text>
<line x1="100" y1="50" x2="100" y2="32" stroke-width="1.4"/>
<rect x="90" y="22" width="20" height="10" fill="#E4D3BF"/>
</g>
</svg>
</div>
<div class="product-card__game">Age of Sigmar</div>
<h3 class="product-card__title">Spearhead: Stormcast Eternals</h3>
<div class="product-card__rating">
<span class="product-card__stars">★★★★☆</span>
<span>4.7 (146)</span>
</div>
<div class="product-card__row">
<div class="product-card__price">£75.00</div>
<a href="#" class="product-card__quick">Quick view →</a>
</div>
</div>
</article>
<article class="product-card">
<svg class="product-card__frame" viewBox="0 0 300 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="294" height="454" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="9" y="9" width="282" height="442" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<svg class="product-card__coin" viewBox="0 0 50 50" aria-hidden="true">
<circle cx="25" cy="25" r="23" fill="#F4A479" stroke="#613F34" stroke-width="1.5"/>
<circle cx="25" cy="25" r="19" fill="none" stroke="#613F34" stroke-width="0.6"/>
<text x="25" y="22" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle" font-weight="bold">EARN</text>
<text x="25" y="34" font-family="serif" font-size="14" fill="#613F34" text-anchor="middle" font-weight="bold">42</text>
<text x="25" y="42" font-family="serif" font-size="6" fill="#613F34" text-anchor="middle">PTS</text>
</svg>
<div class="product-card__inner">
<div class="product-card__illus">
<svg viewBox="0 0 200 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<path d="M40 40 L160 40 L160 170 L40 170 Z" fill="#EADBC6"/>
<path d="M40 40 L48 32 L168 32 L168 162 L160 170" fill="#E4D3BF"/>
<path d="M48 32 L48 162 M168 32 L160 40 M168 162 L160 170"/>
<line x1="40" y1="60" x2="160" y2="60" stroke-width="0.7"/>
<line x1="40" y1="150" x2="160" y2="150" stroke-width="0.7"/>
<circle cx="100" cy="105" r="30" stroke-width="0.9"/>
<path d="M100 80 L108 100 L130 100 L114 114 L120 134 L100 122 L80 134 L86 114 L70 100 L92 100 Z" stroke-width="0.9" fill="#E4D3BF"/>
<rect x="50" y="68" width="100" height="14" fill="#832D15"/>
<text x="100" y="78" font-family="serif" font-size="9" fill="#FFFFFF" text-anchor="middle" font-weight="bold">D&D</text>
</g>
</svg>
</div>
<div class="product-card__game">Dungeons & Dragons</div>
<h3 class="product-card__title">Player's Handbook (2024)</h3>
<div class="product-card__rating">
<span class="product-card__stars">★★★★★</span>
<span>4.8 (412)</span>
</div>
<div class="product-card__row">
<div class="product-card__price">£42.00</div>
<a href="#" class="product-card__quick">Quick view →</a>
</div>
</div>
</article>
<article class="product-card">
<svg class="product-card__frame" viewBox="0 0 300 460" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="294" height="454" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="9" y="9" width="282" height="442" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<svg class="product-card__coin" viewBox="0 0 50 50" aria-hidden="true">
<circle cx="25" cy="25" r="23" fill="#F4A479" stroke="#613F34" stroke-width="1.5"/>
<circle cx="25" cy="25" r="19" fill="none" stroke="#613F34" stroke-width="0.6"/>
<text x="25" y="22" font-family="serif" font-size="9" fill="#613F34" text-anchor="middle" font-weight="bold">EARN</text>
<text x="25" y="34" font-family="serif" font-size="14" fill="#613F34" text-anchor="middle" font-weight="bold">38</text>
<text x="25" y="42" font-family="serif" font-size="6" fill="#613F34" text-anchor="middle">PTS</text>
</svg>
<div class="product-card__inner">
<div class="product-card__illus">
<svg viewBox="0 0 200 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.3" fill="none">
<path d="M28 60 L172 60 L168 168 L32 168 Z" fill="#EADBC6"/>
<path d="M28 60 L24 50 L176 50 L172 60" fill="#E4D3BF"/>
<g stroke-width="1">
<rect x="42" y="80" width="22" height="32" fill="#E4D3BF"/><rect x="42" y="80" width="22" height="8" fill="#832D15"/>
<rect x="70" y="80" width="22" height="32" fill="#E4D3BF"/><rect x="70" y="80" width="22" height="8" fill="#613F34"/>
<rect x="98" y="80" width="22" height="32" fill="#E4D3BF"/><rect x="98" y="80" width="22" height="8" fill="#F4A479"/>
<rect x="126" y="80" width="22" height="32" fill="#E4D3BF"/><rect x="126" y="80" width="22" height="8" fill="#832D15"/>
<rect x="42" y="120" width="22" height="32" fill="#E4D3BF"/><rect x="42" y="120" width="22" height="8" fill="#613F34"/>
<rect x="70" y="120" width="22" height="32" fill="#E4D3BF"/><rect x="70" y="120" width="22" height="8" fill="#F4A479"/>
<rect x="98" y="120" width="22" height="32" fill="#E4D3BF"/><rect x="98" y="120" width="22" height="8" fill="#832D15"/>
<rect x="126" y="120" width="22" height="32" fill="#E4D3BF"/><rect x="126" y="120" width="22" height="8" fill="#613F34"/>
</g>
<line x1="40" y1="36" x2="160" y2="40" stroke-width="1.4"/>
<path d="M40 36 L26 30 L24 40 L38 44 Z" fill="#E4D3BF"/>
<path d="M26 30 L18 26 L16 36 L24 40 Z" fill="#832D15"/>
</g>
</svg>
</div>
<div class="product-card__game">Paints & Brushes</div>
<h3 class="product-card__title">Citadel Essentials Paint Set</h3>
<div class="product-card__rating">
<span class="product-card__stars">★★★★☆</span>
<span>4.6 (89)</span>
</div>
<div class="product-card__row">
<div class="product-card__price">£38.00</div>
<a href="#" class="product-card__quick">Quick view →</a>
</div>
</div>
</article>
</div>
</div>
</section>
<!-- ============ HOW-TO GUIDES ============ -->
<section class="guides" aria-label="How-to guides and tutorials">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ V. — The Field Manual</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 720 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L620 12 Q670 12 690 30 L700 40 L690 50 Q670 78 620 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L620 22 Q662 22 682 38 L688 42 L682 48 Q662 68 620 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M706 40 L720 32 L716 40 L720 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">How-To & Tutorials</h2>
</div>
<p class="eng-head__sub">Read at the workbench, watch on the tablet beside it. Written by the folks who pack your boxes and play on Wednesday nights.</p>
</div>
<div class="guides__grid">
<article class="guide-card">
<svg class="guide-card__frame" viewBox="0 0 400 540" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="534" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="520" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="guide-card__inner">
<div class="guide-card__cover">
<svg viewBox="0 0 320 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.4" fill="none">
<rect x="120" y="150" width="80" height="18" fill="#EADBC6"/>
<path d="M120 150 L116 168 L204 168 L200 150" stroke-width="0.7"/>
<path d="M140 80 L180 80 L186 144 L134 144 Z" fill="#EADBC6"/>
<circle cx="160" cy="68" r="14" fill="#E4D3BF"/>
<path d="M148 64 L148 50 L172 50 L172 64" stroke-width="0.9"/>
<line x1="154" y1="70" x2="158" y2="70"/>
<line x1="162" y1="70" x2="166" y2="70"/>
<path d="M140 80 Q120 96 124 144" stroke-width="0.9"/>
<path d="M180 80 Q200 96 196 144" stroke-width="0.9"/>
<line x1="260" y1="40" x2="200" y2="80" stroke-width="1.5"/>
<path d="M260 40 L286 28 L290 38 L264 50 Z" fill="#E4D3BF"/>
<path d="M286 28 L300 22 L304 32 L290 38 Z" fill="#832D15"/>
<circle cx="205" cy="82" r="2" fill="#832D15"/>
<path d="M10 10 L30 10 M10 10 L10 30" stroke-width="0.9"/>
<path d="M310 10 L290 10 M310 10 L310 30" stroke-width="0.9"/>
<path d="M10 190 L30 190 M10 190 L10 170" stroke-width="0.9"/>
<path d="M310 190 L290 190 M310 190 L310 170" stroke-width="0.9"/>
</g>
</svg>
</div>
<div class="guide-card__body">
<div class="guide-card__meta">
<span class="guide-card__badge">Beginner</span>
<span class="guide-card__time">· 12 minute read</span>
</div>
<h3 class="guide-card__title">Edge highlighting without the wobble</h3>
<p class="guide-card__excerpt">A whole shelf of beginners get the basecoat right and falter at the highlight. Three brush angles, two thinning ratios, and the trick of working in flat-shadow light — that's the lot.</p>
<a href="#" class="guide-card__cta">Read the guide →</a>
</div>
</div>
</article>
<article class="guide-card">
<svg class="guide-card__frame" viewBox="0 0 400 540" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="534" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="520" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="guide-card__inner">
<div class="guide-card__cover">
<svg viewBox="0 0 320 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.4" fill="none">
<path d="M40 60 L160 80 L160 168 L40 148 Z" fill="#EADBC6"/>
<path d="M280 60 L160 80 L160 168 L280 148 Z" fill="#EADBC6"/>
<line x1="160" y1="80" x2="160" y2="168" stroke-width="0.7"/>
<g stroke-width="0.5">
<line x1="56" y1="92" x2="150" y2="104"/>
<line x1="56" y1="102" x2="150" y2="114"/>
<line x1="56" y1="112" x2="146" y2="124"/>
<line x1="56" y1="124" x2="150" y2="136"/>
<line x1="56" y1="134" x2="148" y2="146"/>
<line x1="170" y1="104" x2="264" y2="92"/>
<line x1="170" y1="114" x2="264" y2="102"/>
<line x1="170" y1="124" x2="260" y2="112"/>
<line x1="170" y1="136" x2="262" y2="124"/>
<line x1="170" y1="146" x2="260" y2="134"/>
</g>
<rect x="60" y="76" width="60" height="10" fill="#832D15" stroke-width="0.6"/>
<rect x="200" y="76" width="60" height="10" fill="#832D15" stroke-width="0.6"/>
<rect x="200" y="120" width="28" height="28" fill="#E4D3BF" transform="rotate(-10 214 134)"/>
<g transform="rotate(-10 214 134)" stroke-width="0.6">
<circle cx="207" cy="127" r="1.5" fill="#613F34"/>
<circle cx="221" cy="127" r="1.5" fill="#613F34"/>
<circle cx="214" cy="134" r="1.5" fill="#613F34"/>
<circle cx="207" cy="141" r="1.5" fill="#613F34"/>
<circle cx="221" cy="141" r="1.5" fill="#613F34"/>
</g>
<path d="M30 30 L290 28 L290 38 L30 40 Z" fill="#E4D3BF"/>
<g stroke-width="0.7">
<line x1="50" y1="30" x2="50" y2="40"/><line x1="70" y1="30" x2="70" y2="40"/>
<line x1="90" y1="30" x2="90" y2="40"/><line x1="110" y1="30" x2="110" y2="40"/>
<line x1="130" y1="30" x2="130" y2="40"/><line x1="150" y1="30" x2="150" y2="40"/>
<line x1="170" y1="30" x2="170" y2="40"/><line x1="190" y1="30" x2="190" y2="40"/>
<line x1="210" y1="30" x2="210" y2="40"/><line x1="230" y1="30" x2="230" y2="40"/>
<line x1="250" y1="30" x2="250" y2="40"/><line x1="270" y1="30" x2="270" y2="40"/>
</g>
</g>
</svg>
</div>
<div class="guide-card__body">
<div class="guide-card__meta">
<span class="guide-card__badge">Intermediate</span>
<span class="guide-card__time">· 18 minute watch</span>
</div>
<h3 class="guide-card__title">Combat Patrol Missions, sorted</h3>
<p class="guide-card__excerpt">The new mission deck has six twists most pickup games miss. We walk through each one with a worked example on a 30-by-44 board — including the corner deployments that ruin first-turn alpha strikes.</p>
<a href="#" class="guide-card__cta">Watch the tutorial →</a>
</div>
</div>
</article>
<article class="guide-card">
<svg class="guide-card__frame" viewBox="0 0 400 540" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="394" height="534" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="380" height="520" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="guide-card__inner">
<div class="guide-card__cover">
<svg viewBox="0 0 320 200" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.4" fill="none">
<path d="M60 80 L60 168 L160 168 L160 70 L130 70 L130 50 L100 50 L100 70 L60 70 Z" fill="#EADBC6"/>
<path d="M60 70 L80 90 L72 110 L92 130 L80 150" stroke-width="0.8"/>
<rect x="80" y="92" width="14" height="20" fill="#613F34"/>
<rect x="116" y="92" width="14" height="20" fill="#613F34"/>
<rect x="80" y="128" width="14" height="20" fill="#613F34"/>
<rect x="116" y="128" width="14" height="20" fill="#613F34"/>
<path d="M220 100 L220 168" stroke-width="2"/>
<ellipse cx="220" cy="86" rx="28" ry="22" fill="#EADBC6"/>
<path d="M198 80 Q210 60 230 70" stroke-width="0.7"/>
<path d="M212 90 Q230 76 244 92" stroke-width="0.7"/>
<path d="M214 168 Q210 170 204 168 M226 168 Q230 170 236 168"/>
<line x1="20" y1="170" x2="300" y2="170" stroke-width="1.2"/>
<g stroke-width="0.6">
<path d="M30 170 L34 164 M38 170 L42 164"/>
<path d="M180 170 L184 164 M188 170 L192 164"/>
<path d="M260 170 L264 164 M268 170 L272 164"/>
</g>
<g stroke-width="0.5">
<line x1="260" y1="30" x2="280" y2="50"/>
<line x1="240" y1="20" x2="244" y2="48"/>
<line x1="220" y1="30" x2="232" y2="56"/>
</g>
</g>
</svg>
</div>
<div class="guide-card__body">
<div class="guide-card__meta">
<span class="guide-card__badge">Advanced</span>
<span class="guide-card__time">· 24 minute read</span>
</div>
<h3 class="guide-card__title">Building gothic ruins from foam</h3>
<p class="guide-card__excerpt">A weekend project. Hot-wire cutter, blue foam, the kind of patience you'd give a stripped paint job — and you'll have a piece of LOS-blocking terrain that holds up at the tournament weekend.</p>
<a href="#" class="guide-card__cta">Read the guide →</a>
</div>
</div>
</article>
</div>
</div>
</section>
<!-- ============ CREATOR SPOTLIGHT ============ -->
<section class="creators" aria-label="Creator partner spotlight">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ VI. — The Company We Keep</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 720 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L620 12 Q670 12 690 30 L700 40 L690 50 Q670 78 620 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L620 22 Q662 22 682 38 L688 42 L682 48 Q662 68 620 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M706 40 L720 32 L716 40 L720 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">Creator Partners</h2>
</div>
<p class="eng-head__sub">Painters, batreppers, dungeon-masters — the folks whose work makes our shelves worth visiting twice.</p>
</div>
</div>
<div class="creators__main">
<article class="creator-feature">
<svg class="creator-feature__frame" viewBox="0 0 380 480" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="374" height="474" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="360" height="460" stroke="#613F34" stroke-width="0.5" fill="none"/>
<path d="M3 30 Q3 3 30 3 M350 3 Q377 3 377 30 M3 450 Q3 477 30 477 M350 477 Q377 477 377 450" stroke="#613F34" stroke-width="0.6" fill="none"/>
</svg>
<div class="creator-feature__inner">
<svg class="creator-feature__avatar" viewBox="0 0 160 160" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.4" fill="none">
<circle cx="80" cy="80" r="74" fill="#EADBC6"/>
<circle cx="80" cy="80" r="68" stroke-width="0.6"/>
<!-- Portrait: woman with goggles + bandana -->
<circle cx="80" cy="76" r="32" fill="#E4D3BF"/>
<!-- Bandana -->
<path d="M48 60 Q80 38 112 60 L112 70 Q80 56 48 70 Z" fill="#832D15" stroke-width="1.1"/>
<path d="M52 65 L108 65" stroke="#FFFFFF" stroke-width="0.5" opacity=".5"/>
<!-- Hair -->
<path d="M48 88 Q44 110 56 124 M112 88 Q116 110 104 124" stroke-width="1"/>
<!-- Goggles around neck -->
<circle cx="68" cy="110" r="8" stroke-width="1.1"/>
<circle cx="92" cy="110" r="8" stroke-width="1.1"/>
<line x1="76" y1="110" x2="84" y2="110" stroke-width="1.1"/>
<!-- Face -->
<line x1="72" y1="78" x2="76" y2="78"/>
<line x1="84" y1="78" x2="88" y2="78"/>
<path d="M76 92 Q80 95 84 92"/>
<!-- Collar -->
<path d="M50 132 Q80 152 110 132 L110 156 L50 156 Z" fill="#EADBC6"/>
</g>
</svg>
<h3 class="creator-feature__name">Etta “Ironbrush” Calloway</h3>
<div class="creator-feature__tags">
<span class="creator-feature__tag">40K</span>
<span class="creator-feature__tag">AoS</span>
<span class="creator-feature__tag">Painting</span>
</div>
<p class="creator-feature__body">Twelve years at the airbrush. Known for grimdark Death Guard and a no-nonsense weekly stream on the realities of competing in painting comps.</p>
<a href="#" class="ribbon-cta ribbon-cta--small" aria-label="Visit Etta's profile">
<svg viewBox="0 0 200 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" fill="#832D15"/>
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" stroke="#613F34" stroke-width="1.2" fill="none"/>
<path d="M0 22 L8 18 L8 26 Z M200 22 L192 18 L192 26 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Visit the Workshop</span>
</a>
</div>
</article>
<div class="creators__strip-wrap">
<div class="creators__strip-head">§ VI.b — And on the next benches over</div>
<div class="creators__strip">
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<circle cx="35" cy="32" r="14" fill="#E4D3BF"/>
<path d="M21 28 L21 22 L49 22 L49 28" stroke-width="0.9"/>
<line x1="29" y1="33" x2="32" y2="33"/>
<line x1="38" y1="33" x2="41" y2="33"/>
<path d="M30 40 Q35 44 40 40"/>
<path d="M18 50 Q35 64 52 50 L52 64 L18 64 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Boon Halverson</div>
<div class="creator-mini__game">Old World · Tournament Lists</div>
</div>
</article>
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<!-- DM with pointy hat -->
<path d="M20 28 Q35 4 50 28 Z" fill="#E4D3BF"/>
<circle cx="35" cy="34" r="12" fill="#E4D3BF"/>
<line x1="30" y1="34" x2="32" y2="34"/>
<line x1="38" y1="34" x2="40" y2="34"/>
<!-- Long beard -->
<path d="M28 42 Q35 60 42 42 Z" fill="#E4D3BF"/>
<path d="M30 44 L30 56 M35 44 L35 60 M40 44 L40 56" stroke-width="0.6"/>
<path d="M18 60 L52 60 L52 66 L18 66 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Wren Ashfield</div>
<div class="creator-mini__game">D&D · Long-Running Campaigns</div>
</div>
</article>
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<circle cx="35" cy="34" r="13" fill="#E4D3BF"/>
<!-- Bowler hat -->
<path d="M22 26 Q35 16 48 26 L48 28 L22 28 Z" fill="#613F34"/>
<path d="M18 28 L52 28" stroke-width="1.3"/>
<!-- Monocle -->
<circle cx="40" cy="34" r="4"/>
<line x1="44" y1="36" x2="50" y2="42"/>
<line x1="30" y1="34" x2="32" y2="34"/>
<path d="M30 42 Q35 45 40 42"/>
<!-- Moustache -->
<path d="M29 40 Q35 38 41 40" stroke-width="1"/>
<path d="M18 56 Q35 70 52 56 L52 66 L18 66 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Cornelius Vex</div>
<div class="creator-mini__game">40K · Lore & Narrative Play</div>
</div>
</article>
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<circle cx="35" cy="33" r="13" fill="#E4D3BF"/>
<!-- Short hair -->
<path d="M22 30 Q22 18 35 18 Q48 18 48 30" stroke-width="1.1"/>
<line x1="29" y1="33" x2="32" y2="33"/>
<line x1="38" y1="33" x2="41" y2="33"/>
<path d="M30 41 Q35 44 40 41"/>
<!-- Brush in hand -->
<line x1="55" y1="45" x2="62" y2="20" stroke-width="1.4"/>
<path d="M62 20 L66 14 L68 18 L64 24 Z" fill="#832D15"/>
<path d="M18 52 Q35 66 52 52 L52 66 L18 66 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Jules Marik</div>
<div class="creator-mini__game">Hobby · Terrain Builds</div>
</div>
</article>
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<circle cx="35" cy="34" r="13" fill="#E4D3BF"/>
<!-- Long curly hair -->
<path d="M20 30 Q14 40 20 50 M50 30 Q56 40 50 50" stroke-width="1.1"/>
<path d="M22 22 Q24 18 28 20 M48 22 Q46 18 42 20"/>
<line x1="30" y1="33" x2="32" y2="33"/>
<line x1="38" y1="33" x2="40" y2="33"/>
<path d="M30 42 Q35 45 40 42"/>
<path d="M18 56 Q35 70 52 56 L52 66 L18 66 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Imani Whitlock</div>
<div class="creator-mini__game">AoS · Battle Reports</div>
</div>
</article>
<article class="creator-mini">
<svg class="creator-mini__frame" viewBox="0 0 240 200" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="234" height="194" stroke="#613F34" stroke-width="1.3" fill="none"/>
<rect x="9" y="9" width="222" height="182" stroke="#613F34" stroke-width="0.5" fill="none"/>
</svg>
<div class="creator-mini__inner">
<svg class="creator-mini__avatar" viewBox="0 0 70 70" aria-hidden="true">
<g stroke="#613F34" stroke-width="1.2" fill="none">
<circle cx="35" cy="35" r="32" fill="#EADBC6"/>
<circle cx="35" cy="34" r="13" fill="#E4D3BF"/>
<!-- Beard -->
<path d="M22 38 Q35 56 48 38" fill="#E4D3BF"/>
<path d="M22 30 L22 22 L48 22 L48 30" stroke-width="0.9"/>
<line x1="30" y1="32" x2="32" y2="32"/>
<line x1="38" y1="32" x2="40" y2="32"/>
<!-- Pipe -->
<path d="M40 44 L52 42 L54 38 L48 40 Z" fill="#613F34"/>
<path d="M52 38 Q56 30 60 30" stroke-width="0.5"/>
<path d="M18 58 Q35 70 52 58 L52 66 L18 66 Z" fill="#EADBC6"/>
</g>
</svg>
<div class="creator-mini__name">Silas Hooper</div>
<div class="creator-mini__game">Old World · Historicals</div>
</div>
</article>
</div>
</div>
</div>
</section>
<!-- ============ PAINTING SHOWCASE (PHOTOGRAPHIC TIER) ============ -->
<section class="showcase" aria-label="Painting showcase">
<div class="container">
<div class="eng-head">
<div class="eng-head__eyebrow">§ VII. — The Display Case</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 720 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L620 12 Q670 12 690 30 L700 40 L690 50 Q670 78 620 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L620 22 Q662 22 682 38 L688 42 L682 48 Q662 68 620 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M706 40 L720 32 L716 40 L720 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">From Your Workbenches</h2>
</div>
<p class="eng-head__sub">The only photographs in this whole catalogue — because real paint deserves the real eye. Submit your own; we feature six new ones a fortnight.</p>
</div>
<div class="showcase__grid">
<!-- Photographic tier: rich SVG colour-blocked "photographs" of painted minis -->
<figure class="tile tile--tall">
<svg class="tile__photo" viewBox="0 0 400 500" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg1" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#3a2419"/><stop offset="50%" stop-color="#5a3a2a"/><stop offset="100%" stop-color="#2a1812"/>
</linearGradient>
<radialGradient id="spot1" cx="50%" cy="35%" r="55%">
<stop offset="0%" stop-color="#c89a6a" stop-opacity=".8"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="500" fill="url(#bg1)"/>
<rect width="400" height="500" fill="url(#spot1)"/>
<!-- Painted Space Marine -->
<ellipse cx="200" cy="450" rx="120" ry="20" fill="#1a0e08" opacity=".6"/>
<!-- Cape -->
<path d="M120 240 Q100 320 110 440 L200 460 L290 440 Q300 320 280 240 Z" fill="#5a1a20"/>
<path d="M130 260 Q116 340 124 430" stroke="#3a0a10" stroke-width="2" fill="none"/>
<path d="M270 260 Q284 340 276 430" stroke="#3a0a10" stroke-width="2" fill="none"/>
<!-- Body / power armour -->
<path d="M140 220 L260 220 L280 380 L260 450 L140 450 L120 380 Z" fill="#2c4a3a"/>
<path d="M150 240 L250 240 L266 370 L250 440 L150 440 L134 370 Z" fill="#365a48"/>
<!-- Highlights on armour -->
<path d="M150 250 L160 248 L172 260 L170 300" stroke="#7ab090" stroke-width="2" fill="none"/>
<path d="M250 250 L240 248 L228 260 L230 300" stroke="#7ab090" stroke-width="2" fill="none"/>
<!-- Belt -->
<rect x="140" y="340" width="120" height="18" fill="#c89a4a"/>
<rect x="190" y="338" width="20" height="22" fill="#e8c878" stroke="#8a6a2a" stroke-width="1"/>
<!-- Pauldrons -->
<path d="M120 220 Q90 230 80 270 L130 290 Z" fill="#2c4a3a"/>
<path d="M280 220 Q310 230 320 270 L270 290 Z" fill="#2c4a3a"/>
<path d="M88 232 Q86 250 95 280" stroke="#7ab090" stroke-width="2" fill="none"/>
<!-- Skull insignia on left pauldron -->
<circle cx="105" cy="260" r="14" fill="#ede0c8"/>
<circle cx="100" cy="258" r="3" fill="#1a1208"/>
<circle cx="110" cy="258" r="3" fill="#1a1208"/>
<!-- Helm -->
<path d="M168 180 Q168 140 200 140 Q232 140 232 180 L232 218 L168 218 Z" fill="#365a48"/>
<path d="M168 195 L232 195" stroke="#1a2a20" stroke-width="2"/>
<rect x="175" y="200" width="50" height="10" fill="#8a3a1a"/>
<path d="M178 205 L222 205" stroke="#d8581a" stroke-width="1" opacity=".8"/>
<!-- Bolter -->
<rect x="56" y="290" width="80" height="22" fill="#1a1208" transform="rotate(-12 100 300)"/>
<rect x="60" y="294" width="74" height="14" fill="#4a3a28" transform="rotate(-12 100 300)"/>
<!-- Sword -->
<path d="M300 200 L320 90 L324 92 L308 204 Z" fill="#c8d8e8"/>
<path d="M310 90 L322 92" stroke="#8090a0" stroke-width="1"/>
<rect x="294" y="200" width="32" height="10" fill="#3a2a18"/>
<circle cx="310" cy="218" r="6" fill="#c89a4a"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 500" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 494 L26 494 M6 494 L6 474" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 494 L374 494 M394 494 L394 474" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Death Guard Plague Marine<em>by Etta “Ironbrush” Calloway · 40K</em></figcaption>
</figure>
<figure class="tile">
<svg class="tile__photo" viewBox="0 0 400 240" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg2" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1a2a3a"/><stop offset="100%" stop-color="#0a141e"/>
</linearGradient>
<radialGradient id="spot2" cx="55%" cy="40%" r="50%">
<stop offset="0%" stop-color="#f0d090" stop-opacity=".5"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="240" fill="url(#bg2)"/>
<rect width="400" height="240" fill="url(#spot2)"/>
<!-- Sigmarite gold knight -->
<ellipse cx="200" cy="218" rx="100" ry="10" fill="#000000" opacity=".5"/>
<path d="M160 90 L240 90 L256 200 L144 200 Z" fill="#d8a02a"/>
<path d="M170 100 L230 100 L244 196 L156 196 Z" fill="#f0c050"/>
<path d="M180 110 L200 110 L210 196 L190 196 Z" fill="#fae080" opacity=".7"/>
<!-- Wings -->
<path d="M160 100 Q100 80 70 130 L150 140 Z" fill="#e8b840"/>
<path d="M240 100 Q300 80 330 130 L250 140 Z" fill="#e8b840"/>
<path d="M90 110 Q120 105 145 115" stroke="#a87010" stroke-width="1.5" fill="none"/>
<path d="M310 110 Q280 105 255 115" stroke="#a87010" stroke-width="1.5" fill="none"/>
<!-- Helm -->
<path d="M180 50 Q180 30 200 30 Q220 30 220 50 L220 90 L180 90 Z" fill="#f0c050"/>
<path d="M188 55 L212 55 M188 70 L212 70" stroke="#a87010" stroke-width="1.5"/>
<rect x="194" y="58" width="12" height="10" fill="#3a2a18"/>
<!-- Hammer -->
<line x1="280" y1="60" x2="320" y2="20" stroke="#3a2418" stroke-width="3"/>
<rect x="270" y="0" width="40" height="20" fill="#d8a02a" stroke="#a87010" stroke-width="1"/>
<rect x="275" y="4" width="30" height="12" fill="#f0c050"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 240" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 234 L26 234 M6 234 L6 214" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 234 L374 234 M394 234 L394 214" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Stormcast Liberator<em>by Boon Halverson · Age of Sigmar</em></figcaption>
</figure>
<figure class="tile">
<svg class="tile__photo" viewBox="0 0 400 240" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg3" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#3a1a0a"/><stop offset="100%" stop-color="#180a04"/>
</linearGradient>
<radialGradient id="spot3" cx="50%" cy="45%" r="55%">
<stop offset="0%" stop-color="#f08040" stop-opacity=".6"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="240" fill="url(#bg3)"/>
<rect width="400" height="240" fill="url(#spot3)"/>
<!-- Red dragon -->
<ellipse cx="200" cy="220" rx="120" ry="8" fill="#000000" opacity=".5"/>
<path d="M150 180 Q140 130 170 100 Q200 80 230 100 Q260 130 250 180 Z" fill="#a02818"/>
<path d="M160 170 Q156 132 180 110 Q200 100 220 110 Q244 132 240 170" fill="#d83820"/>
<!-- Wings -->
<path d="M170 110 Q110 60 60 100 Q90 130 150 150 Z" fill="#7a1810"/>
<path d="M230 110 Q290 60 340 100 Q310 130 250 150 Z" fill="#7a1810"/>
<path d="M80 100 Q120 100 150 130" stroke="#400a05" stroke-width="2" fill="none"/>
<path d="M320 100 Q280 100 250 130" stroke="#400a05" stroke-width="2" fill="none"/>
<!-- Head -->
<path d="M180 90 Q190 60 200 60 Q210 60 220 90 L210 110 L190 110 Z" fill="#d83820"/>
<circle cx="194" cy="78" r="3" fill="#fae060"/>
<circle cx="206" cy="78" r="3" fill="#fae060"/>
<!-- Horns -->
<path d="M190 64 L184 50 L188 60 Z" fill="#3a1a0a"/>
<path d="M210 64 L216 50 L212 60 Z" fill="#3a1a0a"/>
<!-- Tail -->
<path d="M250 170 Q300 200 340 190 L342 198 Q300 210 248 178" fill="#a02818"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 240" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 234 L26 234 M6 234 L6 214" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 234 L374 234 M394 234 L394 214" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Adult Red Dragon<em>by Wren Ashfield · D&D</em></figcaption>
</figure>
<figure class="tile">
<svg class="tile__photo" viewBox="0 0 400 240" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg4" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1a1a2e"/><stop offset="100%" stop-color="#080814"/>
</linearGradient>
<radialGradient id="spot4" cx="50%" cy="45%" r="50%">
<stop offset="0%" stop-color="#9080a0" stop-opacity=".6"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="240" fill="url(#bg4)"/>
<rect width="400" height="240" fill="url(#spot4)"/>
<!-- Necron warrior - silver/green -->
<ellipse cx="200" cy="220" rx="80" ry="8" fill="#000000" opacity=".5"/>
<path d="M170 80 L230 80 L240 200 L160 200 Z" fill="#5a6068"/>
<path d="M178 90 L222 90 L230 195 L170 195 Z" fill="#7a8088"/>
<path d="M186 100 L214 100 L218 192 L182 192 Z" fill="#9aa0a8"/>
<!-- Skull face -->
<circle cx="200" cy="60" r="28" fill="#a8b0b8"/>
<ellipse cx="190" cy="58" rx="5" ry="8" fill="#4af850"/>
<ellipse cx="210" cy="58" rx="5" ry="8" fill="#4af850"/>
<path d="M192 72 L196 78 L200 72 L204 78 L208 72" stroke="#2a3038" stroke-width="2" fill="none"/>
<line x1="188" y1="82" x2="212" y2="82" stroke="#2a3038" stroke-width="1.5"/>
<!-- Gauss flayer -->
<rect x="240" y="120" width="80" height="16" fill="#2a3038" transform="rotate(-15 280 128)"/>
<rect x="250" y="124" width="70" height="8" fill="#4af850" opacity=".6" transform="rotate(-15 280 128)"/>
<!-- Green glow accents -->
<circle cx="195" cy="140" r="6" fill="#4af850" opacity=".7"/>
<circle cx="205" cy="160" r="4" fill="#4af850" opacity=".5"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 240" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 234 L26 234 M6 234 L6 214" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 234 L374 234 M394 234 L394 214" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Necron Warrior<em>by Cornelius Vex · 40K</em></figcaption>
</figure>
<figure class="tile">
<svg class="tile__photo" viewBox="0 0 400 240" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg5" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1a2818"/><stop offset="100%" stop-color="#080c06"/>
</linearGradient>
<radialGradient id="spot5" cx="50%" cy="40%" r="55%">
<stop offset="0%" stop-color="#a0c060" stop-opacity=".55"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="240" fill="url(#bg5)"/>
<rect width="400" height="240" fill="url(#spot5)"/>
<!-- Forest druid mini -->
<ellipse cx="200" cy="220" rx="90" ry="9" fill="#000000" opacity=".5"/>
<!-- Robe -->
<path d="M160 90 Q150 130 158 200 L242 200 Q250 130 240 90 Z" fill="#3a5028"/>
<path d="M170 100 Q164 140 172 195 L228 195 Q236 140 230 100 Z" fill="#5a7a3a"/>
<!-- Hood -->
<path d="M170 90 Q200 50 230 90 Z" fill="#2a3818"/>
<path d="M188 75 Q200 60 212 75" stroke="#506838" stroke-width="1" fill="none"/>
<!-- Face shadow -->
<ellipse cx="200" cy="84" rx="14" ry="10" fill="#1a200a"/>
<circle cx="194" cy="82" r="2" fill="#a8d878"/>
<circle cx="206" cy="82" r="2" fill="#a8d878"/>
<!-- Staff -->
<line x1="100" y1="220" x2="130" y2="40" stroke="#5a3818" stroke-width="3"/>
<path d="M125 40 Q140 30 142 50 Q150 36 152 56 Q158 42 158 60" stroke="#3a5028" stroke-width="2" fill="none"/>
<circle cx="128" cy="55" r="6" fill="#90b840"/>
<!-- Leaves -->
<circle cx="280" cy="60" r="4" fill="#90b840" opacity=".7"/>
<circle cx="300" cy="80" r="3" fill="#90b840" opacity=".6"/>
<circle cx="60" cy="180" r="3" fill="#90b840" opacity=".5"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 240" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 234 L26 234 M6 234 L6 214" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 234 L374 234 M394 234 L394 214" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Wood Elf Druid<em>by Imani Whitlock · D&D</em></figcaption>
</figure>
<figure class="tile">
<svg class="tile__photo" viewBox="0 0 400 240" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
<defs>
<linearGradient id="bg6" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#2a1814"/><stop offset="100%" stop-color="#100805"/>
</linearGradient>
<radialGradient id="spot6" cx="50%" cy="40%" r="55%">
<stop offset="0%" stop-color="#e0a850" stop-opacity=".55"/><stop offset="100%" stop-color="transparent"/>
</radialGradient>
</defs>
<rect width="400" height="240" fill="url(#bg6)"/>
<rect width="400" height="240" fill="url(#spot6)"/>
<!-- Bretonnian knight on horse -->
<ellipse cx="200" cy="220" rx="140" ry="10" fill="#000000" opacity=".5"/>
<!-- Horse -->
<path d="M80 180 Q80 130 130 124 L240 124 Q290 130 310 160 Q310 175 290 170 L290 210 L270 210 L270 180 L160 180 L160 210 L140 210 L140 180 L100 200 Z" fill="#e0e0d8"/>
<path d="M100 130 Q98 120 104 116 Q108 122 112 130 Q116 122 120 124" stroke="#9a9a90" stroke-width="1" fill="none"/>
<!-- Knight -->
<path d="M170 70 L210 70 L218 124 L162 124 Z" fill="#1850a0"/>
<path d="M178 80 L202 80 L208 120 L172 120 Z" fill="#2870c0"/>
<circle cx="190" cy="60" r="14" fill="#c0c0b8"/>
<path d="M178 55 L178 44 L202 44 L202 55" stroke="#808078" stroke-width="1.5"/>
<rect x="184" y="58" width="14" height="6" fill="#1a1208"/>
<!-- Lance with banner -->
<line x1="140" y1="80" x2="320" y2="30" stroke="#3a2418" stroke-width="3"/>
<path d="M240 50 L270 44 L266 58 L274 64 L264 70 L240 64 Z" fill="#8a2018"/>
<path d="M252 52 Q258 56 252 62" stroke="#fae060" stroke-width="1" fill="none"/>
</svg>
<svg class="tile__corners" viewBox="0 0 400 240" preserveAspectRatio="none" aria-hidden="true">
<path d="M6 6 L26 6 M6 6 L6 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 6 L374 6 M394 6 L394 26" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M6 234 L26 234 M6 234 L6 214" stroke="#613F34" stroke-width="2" fill="none"/>
<path d="M394 234 L374 234 M394 234 L394 214" stroke="#613F34" stroke-width="2" fill="none"/>
</svg>
<figcaption class="tile__caption">Bretonnian Knight Errant<em>by Silas Hooper · The Old World</em></figcaption>
</figure>
</div>
<div class="showcase__cta-row">
<a href="#" class="ribbon-cta" aria-label="Submit your own painting">
<svg viewBox="0 0 280 60" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 30 L18 12 L262 12 L280 30 L262 48 L18 48 Z" fill="#832D15"/>
<path d="M0 30 L18 12 L262 12 L280 30 L262 48 L18 48 Z" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M0 30 L10 24 L10 36 Z M280 30 L270 24 L270 36 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Submit Your Painting</span>
</a>
</div>
</div>
</section>
<!-- ============ LOYALTY STRIP ============ -->
<section class="loyalty" aria-label="Cross-brand loyalty programme">
<div class="container">
<div class="loyalty__panel">
<svg class="loyalty__frame" viewBox="0 0 1200 360" preserveAspectRatio="none" aria-hidden="true">
<rect x="3" y="3" width="1194" height="354" stroke="#613F34" stroke-width="1.5" fill="none"/>
<rect x="10" y="10" width="1180" height="340" stroke="#613F34" stroke-width="0.5" fill="none"/>
<!-- Corner cartouche flourishes -->
<g stroke="#613F34" stroke-width="1" fill="none">
<path d="M3 30 Q3 3 30 3 M1170 3 Q1197 3 1197 30 M3 330 Q3 357 30 357 M1170 357 Q1197 357 1197 330"/>
<circle cx="20" cy="20" r="3" fill="#613F34"/>
<circle cx="1180" cy="20" r="3" fill="#613F34"/>
<circle cx="20" cy="340" r="3" fill="#613F34"/>
<circle cx="1180" cy="340" r="3" fill="#613F34"/>
</g>
</svg>
<div class="loyalty__inner">
<div class="eng-head__eyebrow">§ VIII. — The Coin of the Realm</div>
<h2 style="font-family:var(--display);font-size:48px;line-height:1;color:var(--caput);text-transform:uppercase;letter-spacing:var(--ls-tight);margin:var(--sp-3) 0 var(--sp-3)">Earn here. Redeem anywhere.</h2>
<p style="font-family:var(--body);font-size:18px;color:var(--text);max-width:680px;margin:0 auto;line-height:1.5;font-style:italic">One purse, four houses. Every pound spent at War Dungeon earns coins you can spend across the whole Nerdworks family — including ours.</p>
<div class="loyalty__brands">
<div class="loyalty-coin">
<svg class="loyalty-coin__face" viewBox="0 0 90 90" aria-hidden="true">
<circle cx="45" cy="45" r="42" fill="#F4A479" stroke="#613F34" stroke-width="1.8"/>
<circle cx="45" cy="45" r="36" fill="none" stroke="#613F34" stroke-width="0.6"/>
<circle cx="45" cy="45" r="30" fill="none" stroke="#613F34" stroke-width="1.2"/>
<text x="45" y="51" font-family="serif" font-size="22" font-weight="bold" fill="#613F34" text-anchor="middle">N</text>
<g stroke="#613F34" stroke-width="0.7" fill="none">
<path d="M45 8 L45 14 M45 76 L45 82 M8 45 L14 45 M76 45 L82 45"/>
</g>
</svg>
<div class="loyalty-coin__name">Nerdworks</div>
</div>
<div class="loyalty-coin">
<svg class="loyalty-coin__face" viewBox="0 0 90 90" aria-hidden="true">
<circle cx="45" cy="45" r="42" fill="#F4A479" stroke="#613F34" stroke-width="1.8"/>
<circle cx="45" cy="45" r="36" fill="none" stroke="#613F34" stroke-width="0.6"/>
<circle cx="45" cy="45" r="30" fill="none" stroke="#613F34" stroke-width="1.2"/>
<text x="45" y="51" font-family="serif" font-size="22" font-weight="bold" fill="#613F34" text-anchor="middle">A</text>
<g stroke="#613F34" stroke-width="0.7" fill="none">
<path d="M45 8 L45 14 M45 76 L45 82 M8 45 L14 45 M76 45 L82 45"/>
</g>
</svg>
<div class="loyalty-coin__name">ArtSabers</div>
</div>
<div class="loyalty-coin">
<svg class="loyalty-coin__face" viewBox="0 0 90 90" aria-hidden="true">
<circle cx="45" cy="45" r="42" fill="#F4A479" stroke="#613F34" stroke-width="1.8"/>
<circle cx="45" cy="45" r="36" fill="none" stroke="#613F34" stroke-width="0.6"/>
<circle cx="45" cy="45" r="30" fill="none" stroke="#613F34" stroke-width="1.2"/>
<text x="45" y="51" font-family="serif" font-size="22" font-weight="bold" fill="#613F34" text-anchor="middle">P</text>
<g stroke="#613F34" stroke-width="0.7" fill="none">
<path d="M45 8 L45 14 M45 76 L45 82 M8 45 L14 45 M76 45 L82 45"/>
</g>
</svg>
<div class="loyalty-coin__name">Paragon</div>
</div>
<div class="loyalty-coin">
<svg class="loyalty-coin__face" viewBox="0 0 90 90" aria-hidden="true">
<circle cx="45" cy="45" r="42" fill="#832D15" stroke="#613F34" stroke-width="1.8"/>
<circle cx="45" cy="45" r="36" fill="none" stroke="#F4A479" stroke-width="0.6"/>
<circle cx="45" cy="45" r="30" fill="none" stroke="#F4A479" stroke-width="1.2"/>
<text x="45" y="51" font-family="serif" font-size="22" font-weight="bold" fill="#F4A479" text-anchor="middle">W</text>
<g stroke="#F4A479" stroke-width="0.7" fill="none">
<path d="M45 8 L45 14 M45 76 L45 82 M8 45 L14 45 M76 45 L82 45"/>
</g>
</svg>
<div class="loyalty-coin__name">War Dungeon</div>
</div>
</div>
<div style="display:flex;gap:var(--sp-5);justify-content:center;flex-wrap:wrap;margin-top:var(--sp-3)">
<a href="#" class="ribbon-cta ribbon-cta--small" aria-label="Sign in to see your balance">
<svg viewBox="0 0 200 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" fill="#832D15"/>
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" stroke="#613F34" stroke-width="1.2" fill="none"/>
<path d="M0 22 L8 18 L8 26 Z M200 22 L192 18 L192 26 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">Sign In to See Balance</span>
</a>
<a href="#" class="ribbon-cta ribbon-cta--ghost ribbon-cta--small" aria-label="Learn how points work">
<svg viewBox="0 0 200 44" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 22 L12 6 L188 6 L200 22 L188 38 L12 38 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M0 22 L8 18 L8 26 Z M200 22 L192 18 L192 26 Z" fill="#613F34"/>
</svg>
<span class="ribbon-cta__label">How Points Work</span>
</a>
</div>
</div>
</div>
</div>
</section>
<!-- ============ NEWSLETTER ============ -->
<section class="newsletter" aria-label="Newsletter signup">
<div class="newsletter__panel">
<div class="eng-head">
<div class="eng-head__eyebrow">§ IX. — The Dispatch</div>
<div class="eng-head__cartouche">
<svg viewBox="0 0 600 120" preserveAspectRatio="none" aria-hidden="true">
<path d="M30 30 Q50 12 100 12 L500 12 Q550 12 570 30 L580 40 L570 50 Q550 78 500 78 L100 78 Q50 78 30 50 L20 40 Z" fill="none" stroke="#613F34" stroke-width="1.5"/>
<path d="M38 38 Q58 22 100 22 L500 22 Q542 22 562 38 L568 42 L562 48 Q542 68 500 68 L100 68 Q58 68 38 48 L32 42 Z" fill="none" stroke="#613F34" stroke-width="0.6"/>
<path d="M14 40 L0 32 L4 40 L0 48 Z M586 40 L600 32 L596 40 L600 48 Z" fill="#613F34"/>
</svg>
<h2 class="eng-head__title">Join the Garrison</h2>
</div>
</div>
<svg class="newsletter__illus" viewBox="0 0 220 140" aria-hidden="true">
<!-- Typewriter -->
<g stroke="#613F34" stroke-width="1.4" fill="none">
<path d="M30 100 L190 100 L190 130 L30 130 Z" fill="#EADBC6"/>
<path d="M44 60 L176 60 L184 100 L36 100 Z" fill="#E4D3BF"/>
<path d="M50 70 L170 70 L170 90 L50 90 Z" fill="#EADBC6"/>
<!-- Page -->
<path d="M70 20 L150 20 L150 70 L70 70 Z" fill="#FFFFFF" stroke-width="1.2"/>
<line x1="80" y1="30" x2="142" y2="30" stroke-width="0.5"/>
<line x1="80" y1="38" x2="138" y2="38" stroke-width="0.5"/>
<line x1="80" y1="46" x2="142" y2="46" stroke-width="0.5"/>
<line x1="80" y1="54" x2="130" y2="54" stroke-width="0.5"/>
<!-- Roll bar -->
<line x1="62" y1="18" x2="158" y2="18" stroke-width="1.6"/>
<circle cx="62" cy="18" r="4" fill="#E4D3BF"/>
<circle cx="158" cy="18" r="4" fill="#E4D3BF"/>
<!-- Keys -->
<g stroke-width="0.7">
<circle cx="62" cy="80" r="3" fill="#613F34"/>
<circle cx="78" cy="80" r="3" fill="#613F34"/>
<circle cx="94" cy="80" r="3" fill="#613F34"/>
<circle cx="110" cy="80" r="3" fill="#613F34"/>
<circle cx="126" cy="80" r="3" fill="#613F34"/>
<circle cx="142" cy="80" r="3" fill="#613F34"/>
<circle cx="158" cy="80" r="3" fill="#613F34"/>
</g>
<!-- Bell -->
<path d="M30 80 Q22 80 22 72 L26 72 Q26 76 30 76" stroke-width="0.9"/>
</g>
</svg>
<p style="font-family:var(--body);font-size:18px;color:var(--text);line-height:1.55;max-width:560px;margin:0 auto">Tournament dates, new-release notices, the occasional painting essay — sent fortnightly. Subscribe and we'll drop 10% off your first order in your pocket.</p>
<form class="newsletter__form" onsubmit="event.preventDefault()">
<input type="email" placeholder="your-email@workshop.com" aria-label="Email address">
<button class="newsletter__submit" type="submit" aria-label="Subscribe">
<svg viewBox="0 0 200 56" preserveAspectRatio="none" aria-hidden="true">
<path d="M0 28 L14 6 L186 6 L200 28 L186 50 L14 50 Z" fill="#832D15"/>
<path d="M0 28 L14 6 L186 6 L200 28 L186 50 L14 50 Z" stroke="#613F34" stroke-width="1.5" fill="none"/>
<path d="M0 28 L10 22 L10 34 Z M200 28 L190 22 L190 34 Z" fill="#613F34"/>
</svg>
<span>Sign Me Up</span>
</button>
</form>
<p class="newsletter__fine">No marketing nonsense. Unsubscribe with one tap, no hard feelings.</p>
</div>
</section>
<!-- ============ FOOTER ============ -->
<footer class="footer" role="contentinfo">
<div class="footer__main">
<div class="footer__brand-col">
<div class="footer__wordmark">War Dungeon</div>
<p class="footer__brand-tag">Tabletop outfitters since 1881 — Warhammer, Dungeons & Dragons, and every loose end in between. One of four houses in the Nerdworks family.</p>
<h4>Sister Houses</h4>
<div class="footer__sister" aria-label="Sister brands">
<svg class="footer__sister-coin" viewBox="0 0 46 46" aria-hidden="true"><circle cx="23" cy="23" r="21" fill="none" stroke="currentColor" stroke-width="1.4"/><circle cx="23" cy="23" r="17" fill="none" stroke="currentColor" stroke-width="0.5"/><text x="23" y="29" font-family="serif" font-size="14" fill="currentColor" text-anchor="middle" font-weight="bold">N</text></svg>
<svg class="footer__sister-coin" viewBox="0 0 46 46" aria-hidden="true"><circle cx="23" cy="23" r="21" fill="none" stroke="currentColor" stroke-width="1.4"/><circle cx="23" cy="23" r="17" fill="none" stroke="currentColor" stroke-width="0.5"/><text x="23" y="29" font-family="serif" font-size="14" fill="currentColor" text-anchor="middle" font-weight="bold">A</text></svg>
<svg class="footer__sister-coin" viewBox="0 0 46 46" aria-hidden="true"><circle cx="23" cy="23" r="21" fill="none" stroke="currentColor" stroke-width="1.4"/><circle cx="23" cy="23" r="17" fill="none" stroke="currentColor" stroke-width="0.5"/><text x="23" y="29" font-family="serif" font-size="14" fill="currentColor" text-anchor="middle" font-weight="bold">P</text></svg>
</div>
</div>
<div class="footer__col">
<h4>Shop</h4>
<ul>
<li><a href="#">Warhammer 40,000</a></li>
<li><a href="#">Age of Sigmar</a></li>
<li><a href="#">The Old World</a></li>
<li><a href="#">Dungeons & Dragons</a></li>
<li><a href="#">Hobby Supplies</a></li>
<li><a href="#">Paints & Brushes</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Discover</h4>
<ul>
<li><a href="#">Army Builder</a></li>
<li><a href="#">Battle Simulator</a></li>
<li><a href="#">How-To Guides</a></li>
<li><a href="#">Tutorials</a></li>
<li><a href="#">Creators</a></li>
<li><a href="#">Painting Showcase</a></li>
</ul>
</div>
<div class="footer__col">
<h4>Help & Brand</h4>
<ul>
<li><a href="#">Contact</a></li>
<li><a href="#">Shipping</a></li>
<li><a href="#">Returns</a></li>
<li><a href="#">Track Order</a></li>
<li><a href="#">FAQ</a></li>
<li><a href="#">About War Dungeon</a></li>
<li><a href="#">Loyalty Programme</a></li>
<li><a href="#">Affiliate Programme</a></li>
</ul>
</div>
</div>
<div class="footer__baseline">
<div class="footer__baseline-inner">
<span>© 1881–2026 War Dungeon Ltd. · <a href="#">Privacy</a> · <a href="#">Terms</a> · <a href="#">Cookies</a></span>
<div class="footer__pay" aria-label="Payment methods">
<svg viewBox="0 0 36 22" aria-hidden="true"><rect x="1" y="1" width="34" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1"/><text x="18" y="15" font-family="serif" font-size="9" fill="currentColor" text-anchor="middle" font-weight="bold">VISA</text></svg>
<svg viewBox="0 0 36 22" aria-hidden="true"><rect x="1" y="1" width="34" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1"/><circle cx="14" cy="11" r="6" fill="none" stroke="currentColor" stroke-width="1"/><circle cx="22" cy="11" r="6" fill="none" stroke="currentColor" stroke-width="1"/></svg>
<svg viewBox="0 0 36 22" aria-hidden="true"><rect x="1" y="1" width="34" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1"/><text x="18" y="15" font-family="serif" font-size="7" fill="currentColor" text-anchor="middle" font-weight="bold">AMEX</text></svg>
<svg viewBox="0 0 36 22" aria-hidden="true"><rect x="1" y="1" width="34" height="20" rx="2" fill="none" stroke="currentColor" stroke-width="1"/><text x="18" y="15" font-family="serif" font-size="7" fill="currentColor" text-anchor="middle" font-style="italic">Pay</text></svg>
</div>
<div class="footer__social" aria-label="Social channels">
<svg viewBox="0 0 22 22" aria-hidden="true"><rect x="3" y="3" width="16" height="16" rx="4" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="11" cy="11" r="4" fill="none" stroke="currentColor" stroke-width="1.3"/><circle cx="16" cy="6" r="1" fill="currentColor"/></svg>
<svg viewBox="0 0 22 22" aria-hidden="true"><path d="M11 3 L11 19 M3 11 L19 11" stroke="currentColor" stroke-width="1.3" fill="none"/><circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="1.3" fill="none"/></svg>
<svg viewBox="0 0 22 22" aria-hidden="true"><path d="M4 6 L18 6 L18 18 L4 18 Z M4 6 L11 13 L18 6" stroke="currentColor" stroke-width="1.3" fill="none"/></svg>
<svg viewBox="0 0 22 22" aria-hidden="true"><circle cx="11" cy="11" r="8" stroke="currentColor" stroke-width="1.3" fill="none"/><path d="M7 10 Q11 14 15 10" stroke="currentColor" stroke-width="1.3" fill="none"/></svg>
</div>
<div class="footer__badge" aria-label="A Nerdworks Brand">
<svg viewBox="0 0 22 22" aria-hidden="true"><path d="M11 1 L20 5 L20 12 Q20 18 11 21 Q2 18 2 12 L2 5 Z" stroke="currentColor" stroke-width="1.3" fill="none"/><text x="11" y="14" font-family="serif" font-size="9" fill="#832D15" text-anchor="middle" font-weight="bold">N</text></svg>
<span>A Nerdworks Brand</span>
</div>
</div>
</div>
</footer>
</body>
</html>