/wire-template.
<!DOCTYPE html>
<?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><?xml encoding="utf-8"?><html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Saber Cores — the complete guide · ARTSABERS Holocron</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Manrope:wght@300;400;500;600;700&family=Orbitron:wght@400;500;600;700;800&family=Onest:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>/* ============ ARTSABERS · Kyber Hull tokens ============ */
:root {
/* Ember ombre */
--ember-glow: #FFB347;
--ember-bright: #FF9540;
--ember: #FF7A2E;
--ember-forge: #E85D18;
--ember-deep: #D14810;
--ember-smoulder: #8B2E08;
--ember-scar: #5A1A00;
--on-primary-fixed: #2A0800;
/* Hull ladder */
--carbon: #060606;
--void: #0A0A0A;
--charcoal: #141414;
--charcoal-warm: #161412;
--hull-panel: #1A1A1A;
--hull-panel-lift: #242424;
--hull-panel-dark: #0F0F0F;
--hull-chrome-shadow: #2E2E2E;
--hull-edge: #363636;
/* Chrome */
--chrome-highlight: #FAFAFA;
--chrome-glint: #E8E4DD;
--chrome-warm: #F5F0E8;
--chrome-dim: #B8B0A6;
/* Chromatic accents */
--primary: var(--ember);
--accent: var(--ember-glow);
/* Surface semantics */
--bg-page: var(--carbon);
--bg-band-plain: var(--carbon);
--bg-band-warm: var(--charcoal-warm);
--bg-band-void: var(--void);
--bg-card: var(--hull-panel);
--bg-card-lift: var(--hull-panel-lift);
--bg-rail: var(--charcoal-warm);
/* Text roles */
--text-body: var(--chrome-warm);
--text-heading: var(--chrome-highlight);
--text-dim: var(--chrome-dim);
/* Type */
--f-display: 'Orbitron', sans-serif;
--f-body: 'Onest', sans-serif;
/* Shadows */
--panel-lift: inset 0 1px 0 rgba(250,250,250,0.08), 0 8px 24px -8px rgba(0,0,0,0.9);
--panel-lift-hover: inset 0 1px 0 rgba(250,250,250,0.15), 0 16px 48px -12px rgba(0,0,0,0.95);
--ember-hot-rim: inset 0 0 0 1px rgba(255,122,46,0.6), 0 0 24px rgba(255,122,46,0.5);
--ember-glow-sm: 0 0 16px rgba(255,122,46,0.35);
--ember-glow-md: 0 0 32px rgba(255,122,46,0.5);
--ember-seam-glow: 0 0 24px rgba(255,122,46,0.4);
--chrome-top-soft: inset 0 1px 0 rgba(250,250,250,0.30);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
font-family: var(--f-body);
font-size: 16px;
line-height: 1.55;
color: var(--text-body);
background: var(--bg-page);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
/* Hull-plate pattern — subtle carbon plates + ember blooms (MAS77 lineage) */
.hull-plate-bg {
position: relative;
background:
/* Ember bloom left */
radial-gradient(ellipse 400px 300px at 20% 30%, rgba(255,122,46,0.06) 0%, transparent 60%),
/* Ember bloom right */
radial-gradient(ellipse 500px 400px at 80% 70%, rgba(232,93,24,0.05) 0%, transparent 60%),
/* Plate seams */
linear-gradient(to right, transparent 0, transparent calc(50% - 1px), rgba(255,122,46,0.10) calc(50% - 1px), rgba(255,122,46,0.14) 50%, rgba(255,122,46,0.10) calc(50% + 1px), transparent calc(50% + 1px), transparent 100%),
linear-gradient(to bottom, transparent 0, transparent calc(50% - 1px), rgba(255,122,46,0.06) calc(50% - 1px), rgba(255,122,46,0.10) 50%, rgba(255,122,46,0.06) calc(50% + 1px), transparent calc(50% + 1px), transparent 100%),
/* Metallic noise */
linear-gradient(135deg, rgba(255,255,255,0.008) 0%, transparent 50%),
/* Base carbon */
var(--carbon);
background-size: 1200px 900px, 1200px 900px, 1200px 100%, 100% 900px, 100% 100%, 100% 100%;
}
.hull-plate-bg::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(6,6,6,0.4) 0%, transparent 25%, transparent 75%, rgba(6,6,6,0.5) 100%);
pointer-events: none;
}
/* Ember hairline separator */
.ember-hairline-top {
position: relative;
}
.ember-hairline-top::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 1px;
background: linear-gradient(90deg, transparent 0%, rgba(255,122,46,0.7) 20%, rgba(255,180,71,0.85) 50%, rgba(255,122,46,0.7) 80%, transparent 100%);
box-shadow: 0 0 16px rgba(255,122,46,0.4), 0 2px 24px rgba(255,122,46,0.25);
z-index: 2;
}
/* ============================================================ */
/* SITE NAV — .site-nav (block) */
/* ============================================================ */
.site-nav {
position: sticky;
top: 0;
z-index: 100;
background: rgba(6,6,6,0.92);
backdrop-filter: blur(10px);
border-bottom: 1px solid rgba(255,122,46,0.10);
}
.site-nav__inner {
max-width: 1440px;
margin: 0 auto;
padding: 20px 48px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 40px;
}
.site-nav__brand {
font-family: var(--f-display);
font-weight: 700;
font-size: 20px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-highlight);
}
.site-nav__brand-ember { color: var(--ember); }
.site-nav__links {
display: flex;
gap: 36px;
list-style: none;
}
.site-nav__link {
font-family: var(--f-display);
font-size: 12px;
font-weight: 500;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-dim);
padding: 8px 0;
border-bottom: 1px solid transparent;
transition: color .15s, border-color .15s;
}
.site-nav__link:hover { color: var(--chrome-warm); }
.site-nav__link--active {
color: var(--chrome-highlight);
border-bottom-color: var(--ember);
}
.site-nav__utility {
display: flex;
align-items: center;
gap: 20px;
}
.site-nav__utility-item {
font-family: var(--f-display);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-dim);
}
.site-nav__cart {
font-family: var(--f-display);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--ember);
padding: 8px 14px;
border: 1px solid rgba(255,122,46,0.35);
}
/* ============================================================ */
/* EDITORIAL HERO — .editorial-hero (block) */
/* ============================================================ */
.editorial-hero {
position: relative;
min-height: 460px;
padding: 80px 48px 100px;
background:
linear-gradient(180deg, rgba(10,10,10,0) 0%, rgba(6,6,6,0.6) 90%),
repeating-linear-gradient(90deg, transparent 0px, transparent 199px, rgba(255,122,46,0.05) 199px, rgba(255,122,46,0.05) 200px),
repeating-linear-gradient(0deg, transparent 0px, transparent 149px, rgba(250,250,250,0.02) 149px, rgba(250,250,250,0.02) 150px),
var(--carbon);
overflow: hidden;
}
.editorial-hero::after {
content: '';
position: absolute;
bottom: 0; left: 0; right: 0;
height: 60px;
background: linear-gradient(180deg, transparent 0%, rgba(255,122,46,0.06) 60%, rgba(255,122,46,0.14) 100%);
pointer-events: none;
}
.editorial-hero__inner {
max-width: 1200px;
margin: 0 auto;
position: relative;
z-index: 2;
}
.editorial-hero__breadcrumb {
font-family: var(--f-display);
font-size: 11px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--chrome-dim);
margin-bottom: 44px;
}
.editorial-hero__breadcrumb-sep { color: rgba(184,176,166,0.4); padding: 0 10px; }
.editorial-hero__breadcrumb-current { color: var(--ember); }
.editorial-hero__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 28px;
}
.editorial-hero__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 60px;
line-height: 1.05;
letter-spacing: 0.8px;
color: var(--chrome-highlight);
margin-bottom: 32px;
max-width: 20ch;
}
.editorial-hero__subline {
font-family: var(--f-body);
font-size: 19px;
line-height: 1.6;
color: var(--chrome-warm);
max-width: 68ch;
margin-bottom: 48px;
}
.editorial-hero__meta {
font-family: var(--f-display);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--chrome-dim);
}
.editorial-hero__meta-sep { color: rgba(184,176,166,0.4); padding: 0 12px; }
/* ============================================================ */
/* TL;DR BAND — .tldr-band (block) */
/* ============================================================ */
.tldr-band {
padding: 72px 48px;
background: var(--carbon);
position: relative;
}
.tldr-band__inner {
max-width: 1000px;
margin: 0 auto;
}
.tldr-band__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 18px;
}
.tldr-band__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 32px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 32px; letter-spacing: 0.8px; }
.tldr-band__list {
list-style: none;
display: grid;
gap: 14px;
}
.tldr-band__item {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.6;
color: var(--chrome-warm);
padding-left: 20px;
position: relative;
}
.tldr-band__item::before {
content: '›';
position: absolute;
left: 0;
top: 0;
color: var(--ember);
font-weight: 700;
font-family: var(--f-display);
}
.tldr-band__item strong {
color: var(--chrome-highlight);
font-weight: 600;
}
/* ============================================================ */
/* ARTICLE BODY (2-column) — .article-body (block) */
/* ============================================================ */
.article-body {
position: relative;
}
.article-body__inner {
max-width: 1240px;
margin: 0 auto;
padding: 80px 48px 100px;
display: grid;
grid-template-columns: 240px 1fr;
gap: 72px;
align-items: start;
}
/* ============================================================ */
/* TOC RAIL — .toc-rail (block) */
/* ============================================================ */
.toc-rail {
position: sticky;
top: 96px;
align-self: start;
background: var(--charcoal-warm);
border-right: 1px solid rgba(255,122,46,0.25);
padding: 24px 0 24px 0;
}
.toc-rail__header {
padding: 0 20px 20px;
border-bottom: 1px solid rgba(255,122,46,0.20);
}
.toc-rail__chip {
display: inline-block;
font-family: var(--f-display);
font-size: 10px;
font-weight: 600;
letter-spacing: 0.20em;
text-transform: uppercase;
color: var(--ember);
padding: 5px 10px;
border: 1px solid rgba(255,122,46,0.4);
}
.toc-rail__nav {
list-style: none;
}
.toc-rail__item {
border-bottom: 1px solid rgba(255,122,46,0.08);
}
.toc-rail__link {
display: block;
padding: 14px 20px;
font-family: var(--f-display);
font-size: 13px;
font-weight: 500;
letter-spacing: 0.06em;
color: var(--chrome-dim);
transition: color .12s, background .12s;
border-left: 2px solid transparent;
}
.toc-rail__link:hover {
color: var(--chrome-warm);
background: rgba(255,122,46,0.04);
}
.toc-rail__link--active {
color: var(--chrome-highlight);
background: rgba(255,122,46,0.08);
border-left: 2px solid var(--ember);
box-shadow: inset 0 0 24px rgba(255,122,46,0.05);
}
.toc-rail__stamp {
padding: 16px 20px 0;
margin-top: 8px;
border-top: 1px solid rgba(255,122,46,0.20);
font-family: var(--f-display);
font-size: 10px;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--chrome-dim);
}
/* ============================================================ */
/* READING COLUMN — .reading-column (wrapper) */
/* ============================================================ */
.reading-column {
max-width: 68ch;
}
.reading-column__section {
margin-bottom: 80px;
scroll-margin-top: 96px;
}
/* Intro block */
.reading-column__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 16px;
}
.reading-column__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 36px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 12px;
letter-spacing: 0.8px;
}
.reading-column__positioning {
font-family: var(--f-body);
font-size: 17px;
font-style: italic;
line-height: 1.5;
color: var(--chrome-warm);
margin-bottom: 28px;
}
.reading-column__paragraph {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.65;
color: var(--chrome-warm);
margin-bottom: 22px;
}
.reading-column__paragraph--dropcap::first-letter {
font-family: var(--f-display);
font-weight: 700;
font-size: 68px;
float: left;
line-height: 0.9;
padding: 6px 14px 0 0;
color: var(--ember);
}
/* KEY TAKEAWAY callout */
.callout-takeaway {
margin: 32px 0;
padding: 24px 28px;
border: 1px solid rgba(255,122,46,0.35);
background: rgba(255,122,46,0.04);
position: relative;
box-shadow: var(--ember-glow-sm);
}
.callout-takeaway__label {
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.22em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 10px;
}
.callout-takeaway__body {
font-family: var(--f-body);
font-size: 16px;
line-height: 1.6;
color: var(--chrome-highlight);
}
/* ============================================================ */
/* CORE SECTION — .core-section (block) */
/* ============================================================ */
.core-section__eyebrow {
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 14px;
}
.core-section__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 44px;
line-height: 1.05;
color: var(--chrome-highlight);
margin-bottom: 10px;
letter-spacing: 0.8px;
}
.core-section__positioning {
font-family: var(--f-body);
font-size: 17px;
font-style: italic;
line-height: 1.5;
color: var(--chrome-warm);
margin-bottom: 28px;
padding-left: 14px;
border-left: 2px solid rgba(255,122,46,0.5);
}
/* Spec grid (bordered fieldset — MAS52 pattern) */
.spec-grid {
margin: 32px 0;
border: 1px solid rgba(54,54,54,0.5);
background: var(--hull-panel-dark);
box-shadow: var(--panel-lift);
position: relative;
}
.spec-grid::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 1px;
background: rgba(250,250,250,0.10);
}
.spec-grid__legend {
display: block;
padding: 14px 20px;
background: var(--hull-panel);
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.20em;
text-transform: uppercase;
color: var(--ember);
border-bottom: 1px solid rgba(54,54,54,0.5);
}
.spec-grid__row {
display: grid;
grid-template-columns: 200px 1fr;
align-items: center;
gap: 20px;
padding: 14px 20px;
border-bottom: 1px dotted rgba(184,176,166,0.15);
}
.spec-grid__row:last-child { border-bottom: none; }
.spec-grid__label {
font-family: var(--f-body);
font-size: 12px;
font-weight: 500;
letter-spacing: 0.10em;
text-transform: uppercase;
color: var(--chrome-dim);
}
.spec-grid__value {
font-family: var(--f-display);
font-size: 14px;
font-weight: 500;
color: var(--chrome-warm);
font-variant-numeric: tabular-nums;
display: flex;
align-items: center;
gap: 12px;
}
.spec-grid__stripe {
display: inline-block;
width: 40px;
height: 3px;
background: linear-gradient(90deg, var(--ember-glow), var(--ember), var(--ember-deep));
}
.spec-grid__stripe--narrow { width: 20px; }
.spec-grid__stripe--wide { width: 60px; }
/* Inline shop CTA */
.inline-shop-cta {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 10px 18px;
border: 1px solid rgba(255,122,46,0.4);
background: rgba(255,122,46,0.06);
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--ember);
transition: background .15s, box-shadow .15s;
margin-top: 24px;
float: right;
}
.inline-shop-cta:hover {
background: rgba(255,122,46,0.12);
box-shadow: var(--ember-glow-sm);
}
.inline-shop-cta__arrow { font-size: 14px; }
/* ============================================================ */
/* COMPARISON TABLE — .comparison-band (block) */
/* ============================================================ */
.comparison-band {
padding: 96px 48px;
background: var(--charcoal-warm);
position: relative;
}
.comparison-band::after {
content: '';
position: absolute;
bottom: 0; left: 0; right: 0;
height: 1px;
background: linear-gradient(90deg, transparent 0%, rgba(255,122,46,0.6) 50%, transparent 100%);
box-shadow: 0 -1px 24px rgba(255,122,46,0.3);
}
.comparison-band__inner {
max-width: 1240px;
margin: 0 auto;
text-align: center;
}
.comparison-band__chip {
display: inline-block;
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
padding: 8px 16px;
border: 1px solid rgba(255,122,46,0.4);
margin-bottom: 28px;
}
.comparison-band__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 44px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 16px;
letter-spacing: 0.8px;
}
.comparison-band__lede {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.55;
color: var(--chrome-dim);
margin-bottom: 56px;
max-width: 60ch;
margin-left: auto;
margin-right: auto;
}
.comparison-table {
width: 100%;
border-collapse: collapse;
text-align: left;
background: var(--hull-panel-dark);
box-shadow: var(--panel-lift);
border: 1px solid rgba(54,54,54,0.4);
}
.comparison-table th,
.comparison-table td {
padding: 22px 18px;
border-bottom: 1px dotted rgba(184,176,166,0.12);
vertical-align: middle;
}
.comparison-table__row-header {
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--chrome-dim);
width: 180px;
background: var(--hull-panel);
}
.comparison-table__col-header {
padding: 24px 18px !important;
font-family: var(--f-display);
color: var(--chrome-highlight);
background: var(--hull-panel);
border-bottom: 1px solid rgba(54,54,54,0.6);
}
.comparison-table__col-name {
display: block;
font-size: 17px;
font-weight: 700;
letter-spacing: -0.005em;
margin-bottom: 6px;
}
.comparison-table__col-tier {
display: inline-block;
font-family: var(--f-display);
font-size: 10px;
font-weight: 500;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--chrome-dim);
padding: 3px 8px;
border: 1px solid rgba(184,176,166,0.25);
}
.comparison-table__pick-chip {
display: block;
font-family: var(--f-display);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--ember-glow);
margin-bottom: 8px;
}
.comparison-table__cell {
font-family: var(--f-body);
font-size: 14px;
color: var(--chrome-warm);
font-variant-numeric: tabular-nums;
}
.comparison-table__cell-stripe {
display: inline-block;
width: 28px;
height: 3px;
margin-right: 10px;
background: linear-gradient(90deg, var(--ember-glow), var(--ember), var(--ember-deep));
vertical-align: middle;
}
.comparison-table__cell-stripe--narrow { width: 14px; }
.comparison-table__cell-stripe--wide { width: 44px; }
.comparison-table__col--pick {
background: rgba(232,93,24,0.06);
border-left: 1px solid rgba(255,122,46,0.5);
border-right: 1px solid rgba(255,122,46,0.5);
box-shadow: inset 0 0 40px rgba(255,122,46,0.04);
}
.comparison-table__col--pick.comparison-table__col-header {
background: rgba(232,93,24,0.12);
border-top: 1px solid rgba(255,122,46,0.6);
}
/* ============================================================ */
/* DECISION HELPER — .decision-helper (block) */
/* ============================================================ */
.decision-helper {
padding: 96px 48px;
background: var(--carbon);
position: relative;
}
.decision-helper__inner {
max-width: 1240px;
margin: 0 auto;
text-align: center;
}
.decision-helper__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 20px;
}
.decision-helper__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 44px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 16px; letter-spacing: 0.8px; }
.decision-helper__lede {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.55;
color: var(--chrome-dim);
margin-bottom: 56px;
}
.decision-helper__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
text-align: left;
}
.archetype-card {
padding: 36px 32px 32px;
background: var(--hull-panel);
border: 1px solid rgba(255,122,46,0.25);
box-shadow: var(--panel-lift);
display: flex;
flex-direction: column;
position: relative;
}
.archetype-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 1px;
background: rgba(250,250,250,0.20);
}
.archetype-card__number {
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.22em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 14px;
}
.archetype-card__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 24px;
line-height: 1.15;
color: var(--chrome-highlight);
margin-bottom: 16px;
letter-spacing: 0.8px;
}
.archetype-card__description {
font-family: var(--f-body);
font-size: 16px;
line-height: 1.6;
color: var(--chrome-warm);
margin-bottom: 20px;
flex-grow: 1;
}
.archetype-card__badge {
display: inline-block;
padding: 8px 14px;
background: linear-gradient(180deg, var(--ember-glow) 0%, var(--ember) 50%, var(--ember-deep) 100%);
color: var(--on-primary-fixed);
font-family: var(--f-display);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
box-shadow: var(--ember-glow-sm);
align-self: flex-start;
margin-bottom: 24px;
}
.archetype-card__hilt {
display: grid;
grid-template-columns: 72px 1fr;
gap: 14px;
align-items: center;
padding: 14px;
background: var(--hull-panel-dark);
border: 1px solid rgba(54,54,54,0.5);
margin-bottom: 20px;
}
.archetype-card__hilt-img {
width: 72px;
height: 72px;
background: var(--hull-panel-lift);
object-fit: cover;
display: block;
}
.archetype-card__hilt-name {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
color: var(--chrome-warm);
letter-spacing: 0.02em;
line-height: 1.3;
margin-bottom: 4px;
}
.archetype-card__hilt-price {
font-family: var(--f-display);
font-size: 16px;
font-weight: 700;
color: var(--ember);
font-variant-numeric: tabular-nums;
}
.archetype-card__cta {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--ember);
padding-top: 6px;
border-top: 1px solid rgba(255,122,46,0.3);
transition: color .15s;
}
.archetype-card__cta:hover { color: var(--ember-glow); }
/* ============================================================ */
/* SHOP GRID — .shop-grid (block) */
/* ============================================================ */
.shop-grid-band {
padding: 96px 48px;
background: var(--charcoal-warm);
position: relative;
}
.shop-grid-band__inner {
max-width: 1240px;
margin: 0 auto;
text-align: center;
}
.shop-grid-band__chip {
display: inline-block;
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
padding: 8px 16px;
border: 1px solid rgba(255,122,46,0.4);
margin-bottom: 28px;
}
.shop-grid-band__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 40px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 16px;
letter-spacing: 0.8px;
}
.shop-grid-band__lede {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.55;
color: var(--chrome-dim);
margin-bottom: 56px;
}
.shop-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px;
text-align: left;
}
.shop-card {
background: var(--hull-panel);
box-shadow: var(--panel-lift);
display: flex;
flex-direction: column;
position: relative;
transition: transform .18s, box-shadow .18s;
}
.shop-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 1px;
background: rgba(250,250,250,0.25);
z-index: 3;
}
.shop-card:hover { transform: translateY(-4px); box-shadow: var(--panel-lift-hover); }
.shop-card__media {
position: relative;
aspect-ratio: 1 / 1;
background: var(--hull-panel-dark);
overflow: hidden;
}
.shop-card__img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.shop-card__badge {
position: absolute;
top: 14px;
left: 14px;
font-family: var(--f-display);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--chrome-highlight);
padding: 5px 10px;
background: rgba(6,6,6,0.72);
border: 1px solid rgba(255,122,46,0.5);
}
.shop-card__badge-dot {
color: var(--ember);
margin-right: 6px;
}
.shop-card__body {
padding: 20px;
background: var(--hull-panel-lift);
display: flex;
flex-direction: column;
flex-grow: 1;
}
.shop-card__title {
font-family: var(--f-display);
font-size: 16px;
font-weight: 600;
line-height: 1.3;
color: var(--chrome-warm);
margin-bottom: 12px; letter-spacing: 0.8px; }
.shop-card__price {
font-family: var(--f-display);
font-size: 22px;
font-weight: 700;
color: var(--ember);
font-variant-numeric: tabular-nums;
margin-bottom: 16px;
}
.shop-card__specs {
list-style: none;
margin-bottom: 16px;
padding-bottom: 16px;
border-bottom: 1px dotted rgba(184,176,166,0.20);
}
.shop-card__spec-row {
display: grid;
grid-template-columns: 1fr auto;
gap: 8px;
padding: 4px 0;
align-items: baseline;
}
.shop-card__spec-label {
font-family: var(--f-body);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--chrome-dim);
position: relative;
overflow: hidden;
}
.shop-card__spec-label::after {
content: '';
position: absolute;
bottom: 5px;
left: 0;
right: 0;
border-bottom: 1px dotted rgba(184,176,166,0.20);
}
.shop-card__spec-label span {
background: var(--hull-panel-lift);
padding-right: 4px;
position: relative;
z-index: 1;
}
.shop-card__spec-value {
font-family: var(--f-display);
font-size: 11px;
font-weight: 500;
color: var(--chrome-warm);
letter-spacing: 0.02em;
padding-left: 6px;
background: var(--hull-panel-lift);
position: relative;
z-index: 1;
}
.shop-card__rating {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 16px;
}
.shop-card__stars {
color: var(--ember);
font-size: 13px;
letter-spacing: 0.03em;
}
.shop-card__rating-count {
font-family: var(--f-body);
font-size: 12px;
color: var(--chrome-dim);
}
.shop-card__cta {
display: inline-flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 12px 14px;
background: rgba(255,122,46,0.08);
border: 1px solid rgba(255,122,46,0.35);
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--ember);
margin-top: auto;
transition: background .15s;
}
.shop-card__cta:hover { background: rgba(255,122,46,0.15); }
/* ============================================================ */
/* ARTICLE FAQ — .article-faq (block, MAS71 pattern) */
/* ============================================================ */
.article-faq {
padding: 96px 48px;
background: var(--carbon);
position: relative;
}
.article-faq__inner {
max-width: 1000px;
margin: 0 auto;
}
.article-faq__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 20px;
text-align: center;
}
.article-faq__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 38px;
line-height: 1.15;
color: var(--chrome-highlight);
margin-bottom: 56px;
text-align: center;
letter-spacing: 0.8px;
max-width: 24ch;
margin-left: auto;
margin-right: auto;
}
.article-faq__accordion {
border-top: 1px solid rgba(255,122,46,0.20);
}
.faq-item {
border-bottom: 1px solid rgba(255,122,46,0.20);
background: var(--hull-panel-dark);
transition: background .15s;
}
.faq-item[open] { background: rgba(255,122,46,0.03); }
.faq-item__summary {
list-style: none;
padding: 22px 24px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
font-family: var(--f-display);
font-size: 17px;
font-weight: 600;
color: var(--chrome-warm);
transition: color .15s;
}
.faq-item__summary::-webkit-details-marker { display: none; }
.faq-item__summary:hover { color: var(--chrome-highlight); }
.faq-item[open] .faq-item__summary { color: var(--chrome-highlight); }
.faq-item__chevron {
color: var(--ember);
font-size: 14px;
font-weight: 700;
transition: transform .18s;
flex-shrink: 0;
width: 28px;
height: 28px;
border: 1px solid rgba(255,122,46,0.4);
display: flex;
align-items: center;
justify-content: center;
}
.faq-item[open] .faq-item__chevron { transform: rotate(45deg); }
.faq-item__body {
padding: 0 24px 26px;
font-family: var(--f-body);
font-size: 16px;
line-height: 1.65;
color: var(--chrome-warm);
max-width: 68ch;
}
/* ============================================================ */
/* READ NEXT — .read-next (block) */
/* ============================================================ */
.read-next {
padding: 96px 48px;
background: var(--carbon);
position: relative;
}
.read-next__inner {
max-width: 1240px;
margin: 0 auto;
}
.read-next__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember);
margin-bottom: 18px;
}
.read-next__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 32px;
line-height: 1.1;
color: var(--chrome-highlight);
margin-bottom: 44px;
letter-spacing: 0.8px;
}
.read-next__grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.read-next-card {
background: var(--hull-panel);
box-shadow: var(--panel-lift);
position: relative;
display: flex;
flex-direction: column;
transition: transform .18s, box-shadow .18s;
}
.read-next-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 1px;
background: rgba(250,250,250,0.20);
z-index: 2;
}
.read-next-card:hover { transform: translateY(-4px); box-shadow: var(--panel-lift-hover); }
.read-next-card__media {
aspect-ratio: 16 / 9;
background:
linear-gradient(135deg, rgba(255,122,46,0.05) 0%, transparent 50%),
var(--hull-panel-dark);
position: relative;
overflow: hidden;
}
.read-next-card__media::after {
content: '';
position: absolute;
inset: 30% 30%;
background: radial-gradient(circle, rgba(255,180,71,0.35) 0%, rgba(255,122,46,0.15) 40%, transparent 70%);
filter: blur(20px);
}
.read-next-card__body {
padding: 24px;
display: flex;
flex-direction: column;
flex-grow: 1;
}
.read-next-card__chip {
display: inline-block;
font-family: var(--f-display);
font-size: 10px;
font-weight: 600;
letter-spacing: 0.20em;
text-transform: uppercase;
color: var(--ember);
padding: 4px 10px;
border: 1px solid rgba(255,122,46,0.4);
align-self: flex-start;
margin-bottom: 14px;
}
.read-next-card__title {
font-family: var(--f-display);
font-size: 19px;
font-weight: 600;
line-height: 1.25;
color: var(--chrome-warm);
margin-bottom: 14px;
letter-spacing: 0.8px;
}
.read-next-card__meta {
font-family: var(--f-display);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-dim);
margin-bottom: 18px;
}
.read-next-card__link {
font-family: var(--f-display);
font-size: 12px;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--ember);
margin-top: auto;
}
/* ============================================================ */
/* NEWSLETTER — .newsletter-capture (block, MAS73 canonical) */
/* ============================================================ */
.newsletter-capture {
padding: 96px 48px;
background: linear-gradient(180deg, var(--ember-glow) 0%, var(--ember) 40%, var(--ember-forge) 100%);
position: relative;
overflow: hidden;
}
.newsletter-capture::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 2px;
background: var(--ember-glow);
box-shadow: 0 0 24px rgba(255,180,71,0.7);
}
.newsletter-capture::after {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(ellipse 600px 300px at 20% 20%, rgba(255,255,255,0.10) 0%, transparent 60%),
radial-gradient(ellipse 400px 200px at 80% 80%, rgba(42,8,0,0.20) 0%, transparent 60%);
pointer-events: none;
}
.newsletter-capture__inner {
max-width: 800px;
margin: 0 auto;
text-align: center;
position: relative;
z-index: 2;
}
.newsletter-capture__eyebrow {
font-family: var(--f-display);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(--ember-scar);
margin-bottom: 24px;
}
.newsletter-capture__title {
font-family: var(--f-display);
font-weight: 700;
font-size: 46px;
line-height: 1.1;
color: var(--on-primary-fixed);
margin-bottom: 20px;
letter-spacing: 0.8px;
}
.newsletter-capture__lede {
font-family: var(--f-body);
font-size: 17px;
line-height: 1.55;
color: var(--ember-scar);
margin-bottom: 36px;
max-width: 52ch;
margin-left: auto;
margin-right: auto;
}
.newsletter-capture__form {
display: grid;
grid-template-columns: 1fr auto;
gap: 14px;
max-width: 560px;
margin: 0 auto;
align-items: end;
}
.newsletter-capture__field {
display: flex;
flex-direction: column;
align-items: flex-start;
text-align: left;
}
.newsletter-capture__label {
font-family: var(--f-display);
font-size: 10px;
font-weight: 600;
letter-spacing: 0.22em;
text-transform: uppercase;
color: var(--ember-scar);
margin-bottom: 8px;
}
.newsletter-capture__input {
width: 100%;
padding: 12px 0;
background: transparent;
border: none;
border-bottom: 2px solid var(--on-primary-fixed);
font-family: var(--f-body);
font-size: 17px;
color: var(--on-primary-fixed);
outline: none;
}
.newsletter-capture__input::placeholder { color: var(--ember-smoulder); }
.newsletter-capture__input:focus {
border-bottom-color: var(--ember-scar);
box-shadow: 0 4px 0 -2px rgba(90,26,0,0.4);
}
.newsletter-capture__cta {
padding: 14px 26px;
border: 1.5px solid var(--on-primary-fixed);
background: transparent;
font-family: var(--f-display);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--on-primary-fixed);
transition: background .15s;
}
.newsletter-capture__cta:hover { background: rgba(42,8,0,0.12); }
/* ============================================================ */
/* SITE FOOTER — .site-footer (block) */
/* ============================================================ */
.site-footer {
background: var(--carbon);
padding: 80px 48px 40px;
position: relative;
}
.site-footer__inner {
max-width: 1240px;
margin: 0 auto;
}
.site-footer__grid {
display: grid;
grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
gap: 48px;
padding-bottom: 56px;
border-bottom: 1px solid rgba(184,176,166,0.10);
}
.site-footer__brand-col {
display: flex;
flex-direction: column;
gap: 18px;
}
.site-footer__brand {
font-family: var(--f-display);
font-weight: 700;
font-size: 22px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-highlight);
}
.site-footer__brand-ember { color: var(--ember); }
.site-footer__tagline {
font-family: var(--f-body);
font-size: 14px;
color: var(--chrome-dim);
max-width: 32ch;
line-height: 1.55;
}
.site-footer__col-title {
font-family: var(--f-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.8px;
text-transform: uppercase;
color: var(--chrome-highlight);
margin-bottom: 22px;
}
.site-footer__link-list { list-style: none; }
.site-footer__link {
display: block;
padding: 6px 0;
font-family: var(--f-body);
font-size: 14px;
color: var(--chrome-dim);
transition: color .12s;
}
.site-footer__link:hover { color: var(--chrome-warm); }
.site-footer__bottom {
padding-top: 32px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 20px;
font-family: var(--f-display);
font-size: 11px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--chrome-dim);
}
/* ============================================================ */
/* Responsive (mobile ~390px) */
/* ============================================================ */
@media (max-width: 900px) {
.site-nav__inner { padding: 16px 20px; }
.site-nav__links { display: none; }
.editorial-hero { padding: 60px 20px 80px; }
.editorial-hero__title { font-size: 40px; letter-spacing: 0.8px; }
.editorial-hero__subline { font-size: 17px; }
.tldr-band { padding: 56px 20px; }
.tldr-band__title { font-size: 26px; letter-spacing: 0.8px; }
.article-body__inner {
grid-template-columns: 1fr;
gap: 32px;
padding: 60px 20px 80px;
}
.toc-rail {
position: static;
border-right: none;
border-bottom: 1px solid rgba(255,122,46,0.25);
}
.core-section__title { font-size: 34px; letter-spacing: 0.8px; }
.comparison-band { padding: 72px 20px; }
.comparison-band__title { font-size: 32px; letter-spacing: 0.8px; }
.comparison-table__row-header { width: 130px; }
.comparison-table th, .comparison-table td { padding: 14px 10px; font-size: 12px; }
.comparison-band__inner { overflow-x: auto; }
.decision-helper { padding: 72px 20px; }
.decision-helper__title { font-size: 32px; letter-spacing: 0.8px; }
.decision-helper__grid { grid-template-columns: 1fr; gap: 20px; }
.shop-grid-band { padding: 72px 20px; }
.shop-grid-band__title { font-size: 30px; letter-spacing: 0.8px; }
.shop-grid { grid-template-columns: 1fr; gap: 20px; }
.article-faq { padding: 72px 20px; }
.article-faq__title { font-size: 28px; letter-spacing: 0.8px; }
.read-next { padding: 72px 20px; }
.read-next__grid { grid-template-columns: 1fr; gap: 20px; }
.newsletter-capture { padding: 72px 20px; }
.newsletter-capture__title { font-size: 32px; letter-spacing: 0.8px; }
.newsletter-capture__form { grid-template-columns: 1fr; }
.site-footer { padding: 60px 20px 30px; }
.site-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
.site-footer__brand-col { grid-column: 1 / -1; }
.spec-grid__row { grid-template-columns: 1fr; gap: 6px; padding: 12px 16px; }
}
/* orbitron-retrofit: title-em italic kill */
[class*="__title"] em, [class*="__title"] i,
[class*="-title"] em, [class*="-title"] i,
[class*="__heading"] em, [class*="__heading"] i,
[class*="-heading"] em, [class*="-heading"] i { font-style: normal; }
/* -- Reconciled from family 14002 canonical 12840:tf-newsletter-signup -- */
.container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 48px; }
/* =========================================================
CAPTURE BAND — full orange ombre (biggest ember moment)
========================================================= */
.capture {
position: relative;
background: linear-gradient(180deg, var(--ember-glow) 0%, var(--ember-bright) 25%, var(--ember) 55%, var(--ember-forge) 100%);
padding: 140px 0;
box-shadow:
inset 0 2px 0 rgba(255,235,180,0.55),
inset 0 -1px 0 rgba(90,26,0,0.55),
0 -12px 40px -8px rgba(255,122,46,0.55);
overflow: hidden;
}
.capture::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(ellipse at 20% 30%, rgba(255,235,180,0.35) 0%, rgba(255,235,180,0) 55%),
radial-gradient(ellipse at 80% 70%, rgba(209,72,16,0.35) 0%, rgba(209,72,16,0) 60%);
pointer-events: none;
}
.capture__inner {
position: relative;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
z-index: 2;
}
.capture__copy { max-width: 620px; }
.capture__eyebrow {
font-family: var(--font-display);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(--on-primary-fixed);
opacity: 0.72;
margin-bottom: 20px;
}
.capture__title {
font-family: var(--font-display);
font-size: clamp(48px, 5.5vw, 78px);
font-weight: 700;
line-height: 0.95;
letter-spacing: 0.8px;
text-transform: uppercase;
color: var(--on-primary-fixed);
margin-bottom: 24px;
}
.capture__sub {
font-family: var(--font-display);
font-size: 20px;
font-weight: 500;
line-height: 1.4;
color: var(--on-primary-fixed);
opacity: 0.86;
max-width: 520px;
}
.capture__form {
display: flex;
flex-direction: column;
gap: 20px;
padding: 44px;
background: rgba(20,20,20,0.94);
box-shadow:
inset 0 1px 0 rgba(250,250,250,0.2),
0 30px 60px -20px rgba(0,0,0,0.7);
}
.capture__form-lbl {
font-family: var(--font-display);
font-size: 11px;
font-weight: 500;
letter-spacing: 0.24em;
text-transform: uppercase;
color: var(--ember-glow);
}
.capture__form-input {
background: transparent;
border: 0;
border-bottom: 1px solid rgba(184,176,166,0.35);
padding: 14px 0;
font-family: var(--font-body);
font-size: 17px;
color: var(--chrome-warm);
outline: none;
transition: border-color 200ms ease, box-shadow 200ms ease;
width: 100%;
}
.capture__form-input::placeholder { color: var(--chrome-dim); opacity: 0.7; }
.capture__form-input:focus {
border-bottom-color: var(--ember);
box-shadow: 0 2px 12px -2px rgba(255,122,46,0.4);
}
.capture__form-cta {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 20px 30px;
background: linear-gradient(180deg, var(--ember-glow) 0%, var(--ember) 50%, var(--ember-deep) 100%);
color: var(--on-primary-fixed);
font-family: var(--font-display);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.20em;
text-transform: uppercase;
box-shadow: var(--ember-glow-sm);
transition: box-shadow 200ms ease;
margin-top: 8px;
}
.capture__form-cta:hover { box-shadow: var(--ember-glow-md); }
.capture__form-fine {
font-family: var(--font-body);
font-size: 12px;
color: var(--chrome-dim);
line-height: 1.5;
}
@media (max-width: 640px) {
.container { padding: 0 24px; }
.promo-bar__inner { gap: 16px; font-size: 10px; }
.promo-bar__item { gap: 16px; }
.hero__telemetry-row { flex-wrap: wrap; gap: 20px; }
.hero__tagline { display: none; }
.trust-bar__row { grid-template-columns: 1fr 1fr; row-gap: 24px; }
.trust-bar__cell { border-right: 0; padding: 4px 12px; }
.saber-core__grid { grid-template-columns: 1fr; }
.faction-grid { grid-template-columns: 1fr; }
.faction-tile { height: 340px; }
.section-head { flex-direction: column; align-items: flex-start; gap: 24px; }
.section-head__right { text-align: left; }
.capture { padding: 90px 0; }
.site-footer__grid { grid-template-columns: 1fr; gap: 40px; }
.site-footer__base { flex-direction: column; align-items: flex-start; gap: 20px; }
}
</style>
</head>
<body>
<!-- ============ SITE NAV ============ -->
<nav class="site-nav">
<div class="site-nav__inner">
<a href="/" class="site-nav__brand">ART<span class="site-nav__brand-ember">SABERS</span></a>
<ul class="site-nav__links">
<li><a href="/lightsabers/" class="site-nav__link">Lightsabers</a></li>
<li><a href="/helmets/" class="site-nav__link">Helmets</a></li>
<li><a href="/parts/" class="site-nav__link">Parts</a></li>
<li><a href="/holocron/" class="site-nav__link site-nav__link--active">Holocron</a></li>
<li><a href="/about/" class="site-nav__link">About</a></li>
<li><a href="/contact/" class="site-nav__link">Contact</a></li>
</ul>
<div class="site-nav__utility">
<span class="site-nav__utility-item">USD</span>
<span class="site-nav__utility-item">Search</span>
<a href="/cart/" class="site-nav__cart">Cart · 0</a>
</div>
</div>
</nav>
<!-- ============ EDITORIAL HERO ============ -->
<a id="tf-hero-editorial-1" data-tf-family="hero-editorial" style="display:contents"></a>
<header class="editorial-hero">
<div class="editorial-hero__inner">
<a id="tf-breadcrumb-1" data-tf-family="breadcrumb" style="display:contents"></a>
<nav class="editorial-hero__breadcrumb">
<a href="/">HOME</a>
<span class="editorial-hero__breadcrumb-sep">/</span>
<a href="/holocron/">HOLOCRON</a>
<span class="editorial-hero__breadcrumb-sep">/</span>
<span class="editorial-hero__breadcrumb-current">SABER CORES</span>
</nav>
<div class="editorial-hero__eyebrow">THE COMPLETE GUIDE · SABER CORES</div>
<h1 class="editorial-hero__title">Saber Cores — the complete guide.</h1>
<p class="editorial-hero__subline">Five cores in the ARTSABERS catalogue. RGB-X, S-RGB, Xenopixel V3, SNV4 PRO, Proffie 2.2. Which is right for you depends on what you actually want the hilt to do — and the marketing sheets don’t always tell you the trade-offs. This one does.</p>
<div class="editorial-hero__meta">
<span>14 MIN READ</span>
<span class="editorial-hero__meta-sep">·</span>
<span>UPDATED 15 JUN 2026</span>
<span class="editorial-hero__meta-sep">·</span>
<span>LAST-CHECKED FOR PRICE + STOCK 13 JUL 2026</span>
</div>
</div>
</header>
<!-- ============ TL;DR BAND ============ -->
<a id="tf-other-1" data-tf-family="other" style="display:contents"></a>
<section class="tldr-band ember-hairline-top">
<div class="tldr-band__inner">
<div class="tldr-band__eyebrow">TL;DR</div>
<h2 class="tldr-band__title">The 30-second version.</h2>
<ul class="tldr-band__list">
<li class="tldr-band__item">If you’re new: <strong>S-RGB</strong>. Cheap, punchy, no learning curve.</li>
<li class="tldr-band__item">If you’re duelling: <strong>Xenopixel V3</strong>. Best all-round core we stock. Full stop.</li>
<li class="tldr-band__item">If you’re tinkering: <strong>Proffie 2.2</strong>. Nothing else lets you rewrite the config from scratch.</li>
<li class="tldr-band__item">Everything else is trade-offs. Keep scrolling.</li>
</ul>
</div>
</section>
<!-- ============ ARTICLE BODY (2-column: TOC rail + reading column) ============ -->
<div class="article-body hull-plate-bg">
<div class="article-body__inner">
<!-- ========== TOC RAIL ========== -->
<a id="tf-article-toc-1" data-tf-family="article-toc" style="display:contents"></a>
<aside class="toc-rail">
<div class="toc-rail__header">
<span class="toc-rail__chip">CONTENTS</span>
</div>
<ol class="toc-rail__nav">
<li class="toc-rail__item"><a href="#introduction" class="toc-rail__link">Introduction</a></li>
<li class="toc-rail__item"><a href="#rgb-x" class="toc-rail__link">RGB-X</a></li>
<li class="toc-rail__item"><a href="#s-rgb" class="toc-rail__link">S-RGB</a></li>
<li class="toc-rail__item"><a href="#xenopixel-v3" class="toc-rail__link toc-rail__link--active">Xenopixel V3</a></li>
<li class="toc-rail__item"><a href="#snv4-pro" class="toc-rail__link">SNV4 PRO</a></li>
<li class="toc-rail__item"><a href="#proffie-22" class="toc-rail__link">Proffie 2.2</a></li>
<li class="toc-rail__item"><a href="#comparison" class="toc-rail__link">Comparison Table</a></li>
<li class="toc-rail__item"><a href="#which" class="toc-rail__link">Which is right for you?</a></li>
<li class="toc-rail__item"><a href="#shop" class="toc-rail__link">Shop hilts by core</a></li>
<li class="toc-rail__item"><a href="#faq" class="toc-rail__link">Article FAQ</a></li>
</ol>
<div class="toc-rail__stamp">Updated 15 Jun 2026</div>
</aside>
<!-- ========== READING COLUMN ========== -->
<main class="reading-column">
<!-- INTRO -->
<section id="introduction" class="reading-column__section">
<div class="reading-column__eyebrow">INTRODUCTION</div>
<h2 class="reading-column__title">What is a saber core?</h2>
<p class="reading-column__paragraph reading-column__paragraph--dropcap">A saber core is the electronics package inside the hilt. It’s what makes the blade ignite, what makes the sound play, what makes the light do more than just glow. Everything else in a build — the blade, the emitter, the pommel — hangs off decisions the core enables or forbids.</p>
<p class="reading-column__paragraph">Five cores appear across the ARTSABERS catalogue. They divide roughly into three tiers: base-lit (RGB-X, S-RGB), smart pixel-compatible (Xenopixel V3, SNV4 PRO), and full-custom enthusiast (Proffie 2.2). The tier a hilt uses is the single biggest determinant of what the hilt costs, what it can do, and how much you’ll fiddle with it once it’s yours.</p>
<p class="reading-column__paragraph">The rest of this guide walks through each core in order — its story, its specs, its trade-offs, and the archetype of duellist or collector it’s built for. If you want the short answer, the TL;DR above has it. If you want to know why, read on.</p>
<a id="tf-other-2" data-tf-family="other" style="display:contents"></a>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">KEY TAKEAWAY</div>
<p class="callout-takeaway__body">The tier matters more than the specific core within a tier. Get the tier right first — base-lit / smart / full-custom — then optimise for the specific core inside that tier.</p>
</aside>
</section>
<!-- CORE 01 — RGB-X -->
<section id="rgb-x" class="reading-column__section core-section">
<div class="core-section__eyebrow">CORE 01</div>
<h2 class="core-section__title">RGB-X</h2>
<p class="core-section__positioning">The base-lit workhorse. Cheapest way into a proper hilt.</p>
<p class="reading-column__paragraph">RGB-X is the entry point. A single strip of high-intensity LEDs runs the length of the blade, colour-shifting through the RGB spectrum via a small onboard driver — think of it as a very good torch, cinematically tuned. It exists because someone needed to make a proper-feeling saber that a first-time buyer could actually afford. That mission still defines it.</p>
<p class="reading-column__paragraph">What it does well: it ignites fast, the blade colour is genuinely vivid, and the Bluetooth module lets you shift hue from your phone without opening the hilt. Fonts are limited (ten to fifteen, mostly the canonical hums and clashes) but they’re decent recordings, not the compressed screech you get on the £80 Amazon sabers. The build tolerances hold up. Nothing rattles.</p>
<p class="reading-column__paragraph">Where it falls down: no pixel blade support. That means no blaster-deflect flash mapped to a strip position, no crystal-glow pulse, no wipe-in / wipe-out ignition. If you’ve ever seen a Xenopixel next to an RGB-X, the visual gap is genuine — base-lit is base-lit. Duelling holds up to enthusiastic sparring, but the LED strip inside a base-lit blade can’t take the sustained knocks a pixel blade shrugs off. It’s a starter tier for a reason.</p>
<a id="tf-product-tech-specs-1" data-tf-family="product-tech-specs" style="display:contents"></a>
<fieldset class="spec-grid">
<legend class="spec-grid__legend">RGB-X · SPECS</legend>
<div class="spec-grid__row"><span class="spec-grid__label">Price Tier</span><span class="spec-grid__value"><span class="spec-grid__stripe spec-grid__stripe--narrow"></span>Entry</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Blade Compatibility</span><span class="spec-grid__value">Base-lit only</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Sound Fonts</span><span class="spec-grid__value">10–15</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Motion Control</span><span class="spec-grid__value">Yes (Bluetooth motion module)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Bluetooth</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Customisation Depth</span><span class="spec-grid__value">Low</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">What’s In The Box</span><span class="spec-grid__value">Hilt + blade + charger + docs</span></div>
</fieldset>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">BEST FOR</div>
<p class="callout-takeaway__body">The visual-effects-adjacent entry point. If your budget is under £250 and you want something that ignites and swings without a learning curve — this is it.</p>
</aside>
<a href="/collections/rgb-x/" class="inline-shop-cta">See hilts with RGB-X <span class="inline-shop-cta__arrow">→</span></a>
<div style="clear:both;"></div>
</section>
<!-- CORE 02 — S-RGB -->
<section id="s-rgb" class="reading-column__section core-section">
<div class="core-section__eyebrow">CORE 02</div>
<h2 class="core-section__title">S-RGB</h2>
<p class="core-section__positioning">Base-lit’s smart cousin. Best light for the price.</p>
<p class="reading-column__paragraph">S-RGB is what happens when the base-lit tier gets a second draft. Same core idea — single-strip LED, colour-shifting via Bluetooth — but the electronics are a generation newer, the sound chip is doubled in capacity, and the hilt tolerances tightened up meaningfully. Around twenty sound fonts, mixed cleaner. This is where the base-lit tier stops feeling like a compromise and starts feeling like a choice.</p>
<p class="reading-column__paragraph">What it does well: sound. The step up from RGB-X to S-RGB is more audible than visual — a heftier hum, cleaner clash cracks, transitions that don’t crackle when you swing hard. If you spend your time actually swinging the hilt rather than posing with it lit, this is the difference you’ll feel first. Motion detection is also noticeably better. A wrist-turn ignition works on the first try instead of the third.</p>
<p class="reading-column__paragraph">Where it falls down: still base-lit. All the RGB-X trade-offs on the blade side apply here too — no pixel effects, no strip-mapped flashes, blade durability is capped at what a light-duelling LED strip can take. Buy an S-RGB if you love the tier for what it is. Don’t buy it hoping it’ll feel like a Xenopixel — it won’t, and that’s not the point.</p>
<fieldset class="spec-grid">
<legend class="spec-grid__legend">S-RGB · SPECS</legend>
<div class="spec-grid__row"><span class="spec-grid__label">Price Tier</span><span class="spec-grid__value"><span class="spec-grid__stripe"></span>Entry-Mid</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Blade Compatibility</span><span class="spec-grid__value">Base-lit only</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Sound Fonts</span><span class="spec-grid__value">20–25</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Motion Control</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Bluetooth</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Customisation Depth</span><span class="spec-grid__value">Low–Medium</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">What’s In The Box</span><span class="spec-grid__value">Hilt + blade + charger + docs + font pack</span></div>
</fieldset>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">BEST FOR</div>
<p class="callout-takeaway__body">New duellists who want a hilt that sounds good on the first swing. The sweet spot before you commit to pixel.</p>
</aside>
<a href="/collections/s-rgb/" class="inline-shop-cta">See hilts with S-RGB <span class="inline-shop-cta__arrow">→</span></a>
<div style="clear:both;"></div>
</section>
<!-- CORE 03 — Xenopixel V3 (EDITOR'S PICK) -->
<section id="xenopixel-v3" class="reading-column__section core-section">
<div class="core-section__eyebrow">CORE 03</div>
<h2 class="core-section__title">Xenopixel V3</h2>
<p class="core-section__positioning">Our mid-tier pick. Best all-round core we stock.</p>
<p class="reading-column__paragraph">Xenopixel V3 is where a saber stops feeling like a very good prop and starts feeling like a real thing. Full Neopixel compatibility — every pixel in the blade addressable individually — means you get real ignition wipes, blaster-deflect flashes that hit at the impact point, unstable-blade flicker with actual randomness. Over a hundred sound fonts on an SD card you can swap yourself. Bluetooth app control. This is the modern smart-core baseline, and the V3 refresh sharpened almost everything about it.</p>
<p class="reading-column__paragraph">What it does well: everything the two base-lit cores don’t. Pixel blades are noticeably brighter (the whole strip lights, not just the base), the wipe animations feel cinematic rather than gimmicky, and font-swapping through the app takes seconds. Duelling durability is genuinely better — pixel blades tolerate contact strikes that would kill a base-lit strip. What experienced duellists reach for, in overwhelming majority, is a Xenopixel V3.</p>
<p class="reading-column__paragraph">Where it falls down: not much, honestly, which is why it’s our pick. Sound-mixing on hard clash-through-swing overlaps can still stutter briefly — the processor is fast, not surgical. Motion sensitivity is standard rather than tunable. And there’s no config-file customisation — you get what the SD card holds, no more. If those three things are dealbreakers, keep reading to the next two cores. If they aren’t, this is the one.</p>
<fieldset class="spec-grid">
<legend class="spec-grid__legend">XENOPIXEL V3 · SPECS</legend>
<div class="spec-grid__row"><span class="spec-grid__label">Price Tier</span><span class="spec-grid__value"><span class="spec-grid__stripe"></span>Mid</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Blade Compatibility</span><span class="spec-grid__value">Pixel + base-lit</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Sound Fonts</span><span class="spec-grid__value">100+ (SD card)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Motion Control</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Bluetooth</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Customisation Depth</span><span class="spec-grid__value">Medium</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">What’s In The Box</span><span class="spec-grid__value">Hilt + blade + charger + docs + full font library</span></div>
</fieldset>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">BEST FOR</div>
<p class="callout-takeaway__body">Anyone who wants to duel, perform, or genuinely enjoy the hilt. The value core. If we could only stock one, we’d stock this one.</p>
</aside>
<a href="/collections/xenopixel-v3/" class="inline-shop-cta">See hilts with Xenopixel V3 <span class="inline-shop-cta__arrow">→</span></a>
<div style="clear:both;"></div>
</section>
<!-- CORE 04 — SNV4 PRO -->
<section id="snv4-pro" class="reading-column__section core-section">
<div class="core-section__eyebrow">CORE 04</div>
<h2 class="core-section__title">SNV4 PRO</h2>
<p class="core-section__positioning">The premium smart core. Where the fit and finish start to feel serious.</p>
<p class="reading-column__paragraph">SNV4 PRO is the top-shelf smart core. Same pixel-blade compatibility as the Xenopixel V3, but with a step-change under the hood — faster processor, cleaner sound-mixing, higher-resolution motion sensor, and a curated font library that’s been mastered specifically for the PRO’s sound chain. The build tolerances step up too. Threads seat cleaner. Buttons feel tighter under the thumb. It’s incremental, but the increments are real.</p>
<p class="reading-column__paragraph">What it does well: refinement. If you’re coming off a Xenopixel V3 and you swing an SNV4 PRO, you’ll feel the difference in the clash mix — overlapping strikes don’t stutter, the swing hum tracks your wrist speed with genuine subtlety, and the motion-triggered blaster-deflect fires with less lag. The font library is smaller than Xenopixel’s hundred-plus but every font is deliberately mixed. Nothing feels like filler.</p>
<p class="reading-column__paragraph">Where it falls down: the price premium over Xenopixel V3 is real, and it buys refinement rather than new capability. You’re not getting effects the Xenopixel can’t do — you’re getting the same effects rendered noticeably better. Whether that’s worth another eighty to a hundred and twenty pounds is a genuine question, and the honest workshop answer is: for competitive duellists and performers, yes; for weekend fun, probably not.</p>
<fieldset class="spec-grid">
<legend class="spec-grid__legend">SNV4 PRO · SPECS</legend>
<div class="spec-grid__row"><span class="spec-grid__label">Price Tier</span><span class="spec-grid__value"><span class="spec-grid__stripe spec-grid__stripe--wide"></span>Mid-Enthusiast</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Blade Compatibility</span><span class="spec-grid__value">Pixel + base-lit</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Sound Fonts</span><span class="spec-grid__value">100+ (SD card)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Motion Control</span><span class="spec-grid__value">Yes (high-sensitivity)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Bluetooth</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Customisation Depth</span><span class="spec-grid__value">Medium–High</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">What’s In The Box</span><span class="spec-grid__value">Hilt + blade + charger + docs + curated font library</span></div>
</fieldset>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">BEST FOR</div>
<p class="callout-takeaway__body">Performers, competitive duellists, and collectors who want the top-shelf smart-core experience. If you’re spending £400+ on a hilt, this is likely the core.</p>
</aside>
<a href="/collections/snv4-pro/" class="inline-shop-cta">See hilts with SNV4 PRO <span class="inline-shop-cta__arrow">→</span></a>
<div style="clear:both;"></div>
</section>
<!-- CORE 05 — Proffie 2.2 -->
<section id="proffie-22" class="reading-column__section core-section">
<div class="core-section__eyebrow">CORE 05</div>
<h2 class="core-section__title">Proffie 2.2</h2>
<p class="core-section__positioning">The tinkerer’s core. Open. Configurable. Uncompromising.</p>
<p class="reading-column__paragraph">Proffie 2.2 is the outlier. Open-source firmware, community-maintained, editable at the config-file level in a text editor over USB. Every parameter of the saber — blade colours, gesture bindings, motion thresholds, button behaviours, blade effects — is a line you can rewrite. Font capacity is unlimited within the hardware’s memory. The community font libraries are enormous. This is what people mean when they say “custom saber” and mean it.</p>
<p class="reading-column__paragraph">What it does well: everything, if you’re willing to learn it. Colour palettes you dial to a specific shade. Ignition curves you write yourself. A twist-to-mute gesture you invent from scratch. Nothing else on the market lets you shape the hilt this deeply. And because the community is large and long-running, the online resources for common tweaks are mature — forum threads exist for almost every question you’ll have.</p>
<p class="reading-column__paragraph">Where it falls down: the learning curve is genuine. Out of the box, a Proffie 2.2 hilt behaves like any other pixel core — ignite, swing, clash, done. The magic is one config file deep, and that file is C++ syntax. If you’ve never edited code, you will hit an initial wall. Once you clear it, the ceiling disappears. But you have to want to clear it. The workshop’s honest advice: don’t buy a Proffie because you might tinker one day. Buy it because you already know you will.</p>
<fieldset class="spec-grid">
<legend class="spec-grid__legend">PROFFIE 2.2 · SPECS</legend>
<div class="spec-grid__row"><span class="spec-grid__label">Price Tier</span><span class="spec-grid__value"><span class="spec-grid__stripe spec-grid__stripe--wide"></span>Enthusiast</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Blade Compatibility</span><span class="spec-grid__value">Pixel + base-lit + custom</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Sound Fonts</span><span class="spec-grid__value">Unlimited (config file)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Motion Control</span><span class="spec-grid__value">Yes (fully custom)</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Bluetooth</span><span class="spec-grid__value">Yes</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">Customisation Depth</span><span class="spec-grid__value">Full</span></div>
<div class="spec-grid__row"><span class="spec-grid__label">What’s In The Box</span><span class="spec-grid__value">Hilt + blade + charger + docs + starter config + community links</span></div>
</fieldset>
<aside class="callout-takeaway">
<div class="callout-takeaway__label">BEST FOR</div>
<p class="callout-takeaway__body">The customiser. If ‘change every parameter on the saber’ sounds fun, not overwhelming — this is it. Fair warning: you’ll be reading forum threads.</p>
</aside>
<a href="/collections/proffie-2-2/" class="inline-shop-cta">See hilts with Proffie 2.2 <span class="inline-shop-cta__arrow">→</span></a>
<div style="clear:both;"></div>
</section>
</main>
</div>
</div>
<!-- ============ COMPARISON TABLE (full-width breakout) ============ -->
<a id="tf-product-tier-comparison-1" data-tf-family="product-tier-comparison" style="display:contents"></a>
<section id="comparison" class="comparison-band ember-hairline-top">
<div class="comparison-band__inner">
<span class="comparison-band__chip">THE COMPARISON</span>
<h2 class="comparison-band__title">Every core, side by side.</h2>
<p class="comparison-band__lede">One row per spec. One column per core. Editor’s pick highlighted in ember.</p>
<table class="comparison-table">
<thead>
<tr>
<th class="comparison-table__col-header comparison-table__row-header"> </th>
<th class="comparison-table__col-header">
<span class="comparison-table__col-name">RGB-X</span>
<span class="comparison-table__col-tier">Entry</span>
</th>
<th class="comparison-table__col-header">
<span class="comparison-table__col-name">S-RGB</span>
<span class="comparison-table__col-tier">Entry-Mid</span>
</th>
<th class="comparison-table__col-header comparison-table__col--pick">
<span class="comparison-table__pick-chip">★ EDITOR’S PICK</span>
<span class="comparison-table__col-name">Xenopixel V3</span>
<span class="comparison-table__col-tier">Mid</span>
</th>
<th class="comparison-table__col-header">
<span class="comparison-table__col-name">SNV4 PRO</span>
<span class="comparison-table__col-tier">Mid-Enthusiast</span>
</th>
<th class="comparison-table__col-header">
<span class="comparison-table__col-name">Proffie 2.2</span>
<span class="comparison-table__col-tier">Enthusiast</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th class="comparison-table__row-header">Price Tier</th>
<td class="comparison-table__cell"><span class="comparison-table__cell-stripe comparison-table__cell-stripe--narrow"></span>Entry</td>
<td class="comparison-table__cell"><span class="comparison-table__cell-stripe"></span>Entry-Mid</td>
<td class="comparison-table__cell comparison-table__col--pick"><span class="comparison-table__cell-stripe"></span>Mid</td>
<td class="comparison-table__cell"><span class="comparison-table__cell-stripe comparison-table__cell-stripe--wide"></span>Mid-Enthusiast</td>
<td class="comparison-table__cell"><span class="comparison-table__cell-stripe comparison-table__cell-stripe--wide"></span>Enthusiast</td>
</tr>
<tr>
<th class="comparison-table__row-header">Blade Compatibility</th>
<td class="comparison-table__cell">Base-lit</td>
<td class="comparison-table__cell">Base-lit</td>
<td class="comparison-table__cell comparison-table__col--pick">Pixel + base-lit</td>
<td class="comparison-table__cell">Pixel + base-lit</td>
<td class="comparison-table__cell">Pixel + base-lit + custom</td>
</tr>
<tr>
<th class="comparison-table__row-header">Sound Fonts</th>
<td class="comparison-table__cell">10–15</td>
<td class="comparison-table__cell">20–25</td>
<td class="comparison-table__cell comparison-table__col--pick">100+</td>
<td class="comparison-table__cell">100+</td>
<td class="comparison-table__cell">Unlimited</td>
</tr>
<tr>
<th class="comparison-table__row-header">Motion Control</th>
<td class="comparison-table__cell">Basic</td>
<td class="comparison-table__cell">Standard</td>
<td class="comparison-table__cell comparison-table__col--pick">Standard</td>
<td class="comparison-table__cell">High-sensitivity</td>
<td class="comparison-table__cell">Fully custom</td>
</tr>
<tr>
<th class="comparison-table__row-header">Bluetooth</th>
<td class="comparison-table__cell">Yes</td>
<td class="comparison-table__cell">Yes</td>
<td class="comparison-table__cell comparison-table__col--pick">Yes</td>
<td class="comparison-table__cell">Yes</td>
<td class="comparison-table__cell">Yes</td>
</tr>
<tr>
<th class="comparison-table__row-header">Customisation Depth</th>
<td class="comparison-table__cell">Low</td>
<td class="comparison-table__cell">Low-Medium</td>
<td class="comparison-table__cell comparison-table__col--pick">Medium</td>
<td class="comparison-table__cell">Medium-High</td>
<td class="comparison-table__cell">Full</td>
</tr>
<tr>
<th class="comparison-table__row-header">Best For</th>
<td class="comparison-table__cell">Beginners</td>
<td class="comparison-table__cell">New duellists</td>
<td class="comparison-table__cell comparison-table__col--pick">All-rounders</td>
<td class="comparison-table__cell">Performers</td>
<td class="comparison-table__cell">Tinkerers</td>
</tr>
</tbody>
</table>
<aside class="callout-takeaway" style="max-width: 720px; margin: 40px auto 0; text-align: left;">
<div class="callout-takeaway__label">KEY TAKEAWAY</div>
<p class="callout-takeaway__body">Editor’s pick isn’t the most expensive — it’s the one that solves the most builds. Xenopixel V3 punches above its price.</p>
</aside>
</div>
</section>
<!-- ============ DECISION HELPER (full-width breakout) ============ -->
<a id="tf-other-3" data-tf-family="other" style="display:contents"></a>
<section id="which" class="decision-helper ember-hairline-top">
<div class="decision-helper__inner">
<div class="decision-helper__eyebrow">DECISION HELPER</div>
<h2 class="decision-helper__title">Which is right for you?</h2>
<p class="decision-helper__lede">Three archetypes. Three answers. Pick the one that sounds like you.</p>
<div class="decision-helper__grid">
<article class="archetype-card">
<div class="archetype-card__number">01</div>
<h3 class="archetype-card__title">“I’m new to sabers.”</h3>
<p class="archetype-card__description">First hilt. Budget under £250. Want something that ignites and swings without a course in configuration.</p>
<span class="archetype-card__badge">S-RGB</span>
<div class="archetype-card__hilt">
<img class="archetype-card__hilt-img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/Apprentice-Black-Duelling-Lightsaber-RGB-X-600x600.jpg" alt="Apprentice Black Duelling S-RGB">
<div>
<div class="archetype-card__hilt-name">Apprentice Black Duelling — S-RGB</div>
<div class="archetype-card__hilt-price">£189</div>
</div>
</div>
<a href="/products/apprentice-black-duelling/" class="archetype-card__cta">See the hilt →</a>
</article>
<article class="archetype-card">
<div class="archetype-card__number">02</div>
<h3 class="archetype-card__title">“I want to duel.”</h3>
<p class="archetype-card__description">You’ve got the basics. Now you want a hilt that survives real contact, sounds good doing it, and lets you build variety.</p>
<span class="archetype-card__badge">XENOPIXEL V3</span>
<div class="archetype-card__hilt">
<img class="archetype-card__hilt-img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/The-Fighter-Black-Lightsaber-Xenopixel-V3-600x600.jpg" alt="The Fighter Xenopixel V3">
<div>
<div class="archetype-card__hilt-name">The Fighter — Xenopixel V3</div>
<div class="archetype-card__hilt-price">£289</div>
</div>
</div>
<a href="/products/the-fighter/" class="archetype-card__cta">See the hilt →</a>
</article>
<article class="archetype-card">
<div class="archetype-card__number">03</div>
<h3 class="archetype-card__title">“I want to customise everything.”</h3>
<p class="archetype-card__description">The hilt IS the hobby. You want to edit sound fonts, rewrite config files, and read forum posts at 2am.</p>
<span class="archetype-card__badge">PROFFIE 2.2</span>
<div class="archetype-card__hilt">
<img class="archetype-card__hilt-img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/Starkiller-V3-Lightsaber-Xenopixel-V3-600x600.jpg" alt="Starkiller SE Proffie 2.2">
<div>
<div class="archetype-card__hilt-name">Starkiller SE — Proffie 2.2</div>
<div class="archetype-card__hilt-price">£489</div>
</div>
</div>
<a href="/products/starkiller-se/" class="archetype-card__cta">See the hilt →</a>
</article>
</div>
</div>
</section>
<!-- ============ SHOP HILTS BY CORE (full-width breakout) ============ -->
<a id="tf-product-grid-1" data-tf-family="product-grid" style="display:contents"></a>
<section id="shop" class="shop-grid-band ember-hairline-top">
<div class="shop-grid-band__inner">
<span class="shop-grid-band__chip">SHOP THE GUIDE</span>
<h2 class="shop-grid-band__title">Ready-to-ship hilts, one per core tier.</h2>
<p class="shop-grid-band__lede">One recommended hilt per core (skipping the entry-level RGB-X — see the S-RGB pick if that’s your bracket).</p>
<div class="shop-grid">
<article class="shop-card">
<div class="shop-card__media">
<img class="shop-card__img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/Apprentice-Black-Duelling-Lightsaber-RGB-X-600x600.jpg" alt="Apprentice Black Duelling S-RGB">
<span class="shop-card__badge"><span class="shop-card__badge-dot">●</span>IN STOCK · SHIPS TODAY</span>
</div>
<div class="shop-card__body">
<h3 class="shop-card__title">Apprentice Black Duelling — S-RGB</h3>
<div class="shop-card__price">£189</div>
<ul class="shop-card__specs">
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Core</span></span><span class="shop-card__spec-value">S-RGB</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Grade</span></span><span class="shop-card__spec-value">Duelling</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Fonts</span></span><span class="shop-card__spec-value">22</span></li>
</ul>
<div class="shop-card__rating">
<span class="shop-card__stars">★★★★★</span>
<span class="shop-card__rating-count">4.6 · 42 reviews</span>
</div>
<a href="/products/apprentice-black-duelling/" class="shop-card__cta">View saber <span>→</span></a>
</div>
</article>
<article class="shop-card">
<div class="shop-card__media">
<img class="shop-card__img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/The-Fighter-Black-Lightsaber-Xenopixel-V3-600x600.jpg" alt="The Fighter Xenopixel V3">
<span class="shop-card__badge"><span class="shop-card__badge-dot">●</span>IN STOCK · SHIPS TODAY</span>
</div>
<div class="shop-card__body">
<h3 class="shop-card__title">The Fighter — Xenopixel V3</h3>
<div class="shop-card__price">£289</div>
<ul class="shop-card__specs">
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Core</span></span><span class="shop-card__spec-value">Xenopixel V3</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Grade</span></span><span class="shop-card__spec-value">Duelling</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Fonts</span></span><span class="shop-card__spec-value">130</span></li>
</ul>
<div class="shop-card__rating">
<span class="shop-card__stars">★★★★★</span>
<span class="shop-card__rating-count">4.8 · 62 reviews</span>
</div>
<a href="/products/the-fighter/" class="shop-card__cta">View saber <span>→</span></a>
</div>
</article>
<article class="shop-card">
<div class="shop-card__media">
<img class="shop-card__img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/Darth-Maul-Double-Bladed-Lightsaber-SNV4-PRO-600x600.jpg" alt="Darth Maul Double SNV4 PRO">
<span class="shop-card__badge"><span class="shop-card__badge-dot">●</span>IN STOCK · SHIPS TODAY</span>
</div>
<div class="shop-card__body">
<h3 class="shop-card__title">Darth Maul Double-Bladed — SNV4 PRO</h3>
<div class="shop-card__price">£419</div>
<ul class="shop-card__specs">
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Core</span></span><span class="shop-card__spec-value">SNV4 PRO</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Grade</span></span><span class="shop-card__spec-value">Duelling</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Fonts</span></span><span class="shop-card__spec-value">120</span></li>
</ul>
<div class="shop-card__rating">
<span class="shop-card__stars">★★★★★</span>
<span class="shop-card__rating-count">4.9 · 34 reviews</span>
</div>
<a href="/products/darth-maul-double/" class="shop-card__cta">View saber <span>→</span></a>
</div>
</article>
<article class="shop-card">
<div class="shop-card__media">
<img class="shop-card__img" src="https://artsabers.com/wp-content/uploads/sites/10/2025/03/Starkiller-V3-Lightsaber-Xenopixel-V3-600x600.jpg" alt="Starkiller SE Proffie 2.2">
<span class="shop-card__badge"><span class="shop-card__badge-dot">●</span>IN STOCK · SHIPS TODAY</span>
</div>
<div class="shop-card__body">
<h3 class="shop-card__title">Starkiller SE — Proffie 2.2</h3>
<div class="shop-card__price">£489</div>
<ul class="shop-card__specs">
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Core</span></span><span class="shop-card__spec-value">Proffie 2.2</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Grade</span></span><span class="shop-card__spec-value">Duelling</span></li>
<li class="shop-card__spec-row"><span class="shop-card__spec-label"><span>Fonts</span></span><span class="shop-card__spec-value">Unlimited (config)</span></li>
</ul>
<div class="shop-card__rating">
<span class="shop-card__stars">★★★★★</span>
<span class="shop-card__rating-count">4.7 · 28 reviews</span>
</div>
<a href="/products/starkiller-se/" class="shop-card__cta">View saber <span>→</span></a>
</div>
</article>
</div>
</div>
</section>
<!-- ============ ARTICLE FAQ (accordion, MAS71 pattern) ============ -->
<a id="tf-faq-accordion-1" data-tf-family="faq-accordion" style="display:contents"></a>
<section id="faq" class="article-faq ember-hairline-top">
<div class="article-faq__inner">
<div class="article-faq__eyebrow">COMMON QUESTIONS</div>
<h2 class="article-faq__title">The questions that come up when people are picking a core.</h2>
<div class="article-faq__accordion">
<details class="faq-item" open>
<summary class="faq-item__summary">
<span>Can I upgrade a base-lit hilt to Xenopixel later?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
Not without replacing the hilt. Cores are integrated with the hilt’s chassis + wiring — you can’t drop a Xenopixel V3 board into an RGB-X hilt. If you think you’ll want to upgrade, buy at the tier you’ll end up wanting.
</div>
</details>
<details class="faq-item">
<summary class="faq-item__summary">
<span>Do I need Bluetooth for a saber to work?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
No. Every core in the catalogue works fully standalone — buttons on the hilt cover ignition, colour cycling, font switching, and volume. Bluetooth is a convenience layer for the smartphone app; if you never pair it, nothing on the hilt breaks. That said, once you’ve used the app to swap fonts or fine-tune a colour, going back to button-only feels slow.
</div>
</details>
<details class="faq-item">
<summary class="faq-item__summary">
<span>How many sound fonts does each core actually support?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
Roughly: RGB-X ships with 10–15 fonts on onboard memory. S-RGB ships with 20–25. Xenopixel V3 and SNV4 PRO ship with 100+ on a swappable SD card — and you can add community fonts to the card yourself. Proffie 2.2 is bounded only by the SD card size and hardware memory; in practice, unlimited.
</div>
</details>
<details class="faq-item">
<summary class="faq-item__summary">
<span>What happens if my core stops working?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
Contact the workshop with a video of the fault and your order reference. Every hilt ships with a 12-month warranty on the electronics. Named single point of contact throughout; 24-hour initial response. If the core is genuinely dead and the fault is manufacturing, we’ll repair or replace — we’ve done both.
</div>
</details>
<details class="faq-item">
<summary class="faq-item__summary">
<span>Is Proffie 2.2 hard to program?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
Honest answer: yes, at first. The config file is C++ syntax and the initial toolchain (Arduino IDE + Proffie board profile) takes an hour to set up. Once you’ve done that once, subsequent tweaks take minutes. There are extensive community-maintained guides — we link the two we recommend in the box. If you’ve never edited code before, plan a weekend for your first serious config pass. If you have, you’ll be fine.
</div>
</details>
<details class="faq-item">
<summary class="faq-item__summary">
<span>Which cores are Neopixel-compatible?</span>
<span class="faq-item__chevron">+</span>
</summary>
<div class="faq-item__body">
The three smart cores: Xenopixel V3, SNV4 PRO, and Proffie 2.2. All three drive individually-addressable Neopixel blades and support the full range of pixel-blade effects (wipe ignitions, blaster-deflect flashes, unstable-blade flicker, colour transitions along the blade). RGB-X and S-RGB are base-lit only — a single LED strip lighting the blade uniformly.
</div>
</details>
</div>
</div>
</section>
<!-- ============ READ NEXT ============ -->
<a id="tf-related-post-rail-1" data-tf-family="related-post-rail" style="display:contents"></a>
<section class="read-next ember-hairline-top">
<div class="read-next__inner">
<div class="read-next__eyebrow">READ NEXT</div>
<h2 class="read-next__title">Deeper into the workshop.</h2>
<div class="read-next__grid">
<a href="/holocron/blade-types/" class="read-next-card">
<div class="read-next-card__media"></div>
<div class="read-next-card__body">
<span class="read-next-card__chip">BLADES</span>
<h3 class="read-next-card__title">Blade types explained — Neopixel vs In-Hilt LED.</h3>
<div class="read-next-card__meta">9 MIN · UPD 3 MAY 2026</div>
<span class="read-next-card__link">Read the guide →</span>
</div>
</a>
<a href="/holocron/duelling-grade/" class="read-next-card">
<div class="read-next-card__media"></div>
<div class="read-next-card__body">
<span class="read-next-card__chip">DUELLING</span>
<h3 class="read-next-card__title">Duelling grade — what it actually means.</h3>
<div class="read-next-card__meta">8 MIN · UPD 22 APR 2026</div>
<span class="read-next-card__link">Read the guide →</span>
</div>
</a>
<a href="/holocron/sound-fonts/" class="read-next-card">
<div class="read-next-card__media"></div>
<div class="read-next-card__body">
<span class="read-next-card__chip">SOUND FONTS</span>
<h3 class="read-next-card__title">Sound fonts 101 — how they work and how to add more.</h3>
<div class="read-next-card__meta">7 MIN · UPD 12 JUN 2026</div>
<span class="read-next-card__link">Read the guide →</span>
</div>
</a>
</div>
</div>
</section>
<!-- ============ NEWSLETTER (MAS73 ember-ombre canonical) ============ -->
<a id="tf-newsletter-signup-1" data-tf-family="newsletter-signup" style="display:contents"></a>
<section class="capture">
<div class="container">
<div class="capture__inner">
<div class="capture__copy">
<div class="capture__eyebrow">◆ Join the comms</div>
<h2 class="capture__title">From factory floor<br>to your inbox.</h2>
<p class="capture__sub">Get 10% off your first saber, plus early access to new drops, ARTSABERS Exclusives, and the workshop pieces that never make it to the public catalogue.</p>
</div>
<div class="capture__form">
<span class="capture__form-lbl">Comms · Signal In</span>
<input class="capture__form-input" type="email" placeholder="your@email.com">
<button class="capture__form-cta">Open the signal →</button>
<span class="capture__form-fine">One drop a week. Unsubscribe with one click. We never share your details.</span>
</div>
</div>
</div>
</section>
<!-- ============ SITE FOOTER ============ -->
<footer class="site-footer">
<div class="site-footer__inner">
<div class="site-footer__grid">
<div class="site-footer__brand-col">
<div class="site-footer__brand">ART<span class="site-footer__brand-ember">SABERS</span></div>
<p class="site-footer__tagline">From factory floor to your door. Hundreds of sabers. One trusted retailer.</p>
</div>
<div>
<div class="site-footer__col-title">Shop</div>
<ul class="site-footer__link-list">
<li><a href="/lightsabers/" class="site-footer__link">Lightsabers</a></li>
<li><a href="/helmets/" class="site-footer__link">Helmets</a></li>
<li><a href="/parts/" class="site-footer__link">Parts & Accessories</a></li>
<li><a href="/offers/" class="site-footer__link">Offers & Deals</a></li>
</ul>
</div>
<div>
<div class="site-footer__col-title">Cores</div>
<ul class="site-footer__link-list">
<li><a href="/collections/rgb-x/" class="site-footer__link">RGB-X</a></li>
<li><a href="/collections/s-rgb/" class="site-footer__link">S-RGB</a></li>
<li><a href="/collections/xenopixel-v3/" class="site-footer__link">Xenopixel V3</a></li>
<li><a href="/collections/snv4-pro/" class="site-footer__link">SNV4 PRO</a></li>
<li><a href="/collections/proffie-2-2/" class="site-footer__link">Proffie 2.2</a></li>
</ul>
</div>
<div>
<div class="site-footer__col-title">Holocron</div>
<ul class="site-footer__link-list">
<li><a href="/holocron/" class="site-footer__link">All guides</a></li>
<li><a href="/holocron/saber-cores/" class="site-footer__link">Saber Cores</a></li>
<li><a href="/holocron/blade-types/" class="site-footer__link">Blade types</a></li>
<li><a href="/holocron/sound-fonts/" class="site-footer__link">Sound fonts</a></li>
</ul>
</div>
<div>
<div class="site-footer__col-title">Workshop</div>
<ul class="site-footer__link-list">
<li><a href="/about/" class="site-footer__link">About</a></li>
<li><a href="/contact/" class="site-footer__link">Contact</a></li>
<li><a href="/faq/" class="site-footer__link">FAQ</a></li>
<li><a href="/shipping/" class="site-footer__link">Shipping & returns</a></li>
</ul>
</div>
</div>
<div class="site-footer__bottom">
<span>© 2026 ARTSABERS · Nerdworks Ltd</span>
<span>Global 7–10 day delivery · 30-day money-back</span>
</div>
</div>
</footer>
</body>
</html>