0
TOOLS#d2b8d0d0
An Unexpected Guide — The Hobbit Prerelease Strategy
@Owner·deposited 1mo ago·updated 1mo ago·198 views
TOOLS#d2b8d0d0
An Unexpected Guide — The Hobbit Prerelease Strategy
OW
@Owner
198Views
0Comments
0Forks
0Saves
SHARE · REMIX
An Unexpected Guide — The Hobbit Prerelease Strategy — a HTML tools widget by @Owner.
CONTROLS
#mtg#draft#hobbit
No comments yet. Be the first!
✦ Remix with AI
SDK in this widgetNo Vibes SDK features detected yet
Generated prompt
You are helping me modify a vibe-coded widget from itjustvibes.com.
[VIBE CODE: "An Unexpected Guide — The Hobbit Prerelease Strategy" by @Owner]
Source: https://itjustvibes.com/Owner/an-unexpected-guide-the-hobbit-prerelease-strategy
Type: HTML
--- SOURCE CODE ---
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>An Unexpected Guide — The Hobbit Prerelease Strategy</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700;900&family=Alegreya:ital,wght@0,400;0,500;0,700;1,400&family=Alegreya+SC:wght@500;700&display=swap" rel="stylesheet">
<style>
:root{
--ink:#2b2416;
--parchment:#efe3c2;
--moss:#3f5233;
--moss-deep:#2a3a22;
--door:#5a7a3f;
--gold:#b8892e;
--gold-bright:#d4a843;
--ember:#9c4531;
--smoke:#6b5d45;
--w:#e9e2c8; --u:#5a8bb0; --b:#4a4054; --r:#b05038; --g:#5f7d45;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
font-family:'Alegreya',Georgia,serif;
background:var(--moss-deep);
color:var(--ink);
font-size:17px;line-height:1.6;
}
.scroll-page{
max-width:1100px;margin:0 auto;
background:
radial-gradient(ellipse at 20% 0%, rgba(255,248,225,.5), transparent 55%),
radial-gradient(ellipse at 85% 100%, rgba(120,90,40,.14), transparent 50%),
var(--parchment);
box-shadow:0 0 0 6px rgba(20,28,15,.55), 0 0 80px rgba(0,0,0,.6);
position:relative;
}
.scroll-page::before{
content:"";position:absolute;inset:0;pointer-events:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .15 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
mix-blend-mode:multiply;opacity:.7;
}
.inner{position:relative;padding:0 clamp(18px,4.5vw,60px) 60px}
/* ===== HERO ===== */
header.hero{text-align:center;padding:52px clamp(18px,4.5vw,60px) 38px;position:relative;border-bottom:3px double var(--gold)}
.hero .eyebrow{font-family:'Alegreya SC',serif;font-weight:700;letter-spacing:.35em;font-size:.8rem;color:var(--ember);text-transform:uppercase}
.hero h1{font-family:'Cinzel',serif;font-weight:900;font-size:clamp(2rem,5.5vw,3.5rem);color:var(--moss-deep);line-height:1.1;margin:.4em 0 .2em}
.hero h1 .amp{color:var(--gold);font-weight:500}
.hero .sub{font-style:italic;font-size:1.13rem;color:var(--smoke);max-width:640px;margin:0 auto}
.door{
width:140px;height:140px;margin:24px auto 8px;position:relative;border-radius:50%;
background:radial-gradient(circle at 38% 34%, #7a9a58, var(--door) 55%, #3d5629 100%);
box-shadow:inset 0 0 0 7px #2f4220, inset 0 0 0 11px var(--gold), inset 0 8px 22px rgba(255,255,255,.18), 0 10px 24px rgba(0,0,0,.35);
}
.door::before{content:"";position:absolute;top:50%;left:50%;width:15px;height:15px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%, var(--gold-bright), #8a6318);box-shadow:0 2px 5px rgba(0,0,0,.45)}
.door::after{content:"";position:absolute;inset:11px;border-radius:50%;background:repeating-linear-gradient(90deg, transparent 0 19px, rgba(30,45,20,.28) 19px 21px);-webkit-mask:radial-gradient(circle, black 98%, transparent 100%);mask:radial-gradient(circle, black 98%, transparent 100%)}
.datestrip{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}
.datestrip span{font-family:'Alegreya SC',serif;font-size:.84rem;letter-spacing:.06em;background:var(--moss-deep);color:var(--parchment);padding:6px 14px;border-radius:999px;border:1px solid var(--gold)}
/* ===== NAV / PAGE TABS ===== */
nav.wayfinder{position:sticky;top:0;z-index:50;background:rgba(42,58,34,.97);border-bottom:2px solid var(--gold);display:flex;justify-content:flex-start;gap:4px;padding:8px 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
nav.wayfinder::-webkit-scrollbar{height:4px}
nav.wayfinder::-webkit-scrollbar-thumb{background:var(--gold);border-radius:4px}
nav.wayfinder button{flex:none;color:var(--parchment);background:transparent;border:1px solid transparent;font-family:'Alegreya SC',serif;font-weight:700;font-size:.82rem;letter-spacing:.07em;padding:7px 13px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
nav.wayfinder button:hover,nav.wayfinder button:focus-visible{border-color:var(--gold-bright);outline:none}
nav.wayfinder button.on{background:var(--gold);color:var(--moss-deep)}
@media(min-width:860px){nav.wayfinder{justify-content:center}}
/* pages */
section.page{display:none}
section.page.active{display:block;animation:fadein .3s ease}
/* ===== SECTIONS ===== */
section{padding-top:54px}
.sec-head{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.sec-door{flex:none;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 38% 34%, #7a9a58, var(--door) 60%, #3d5629);box-shadow:inset 0 0 0 3px #2f4220, inset 0 0 0 5px var(--gold);position:relative}
.sec-door::before{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);background:var(--gold-bright)}
.sec-head h2{font-family:'Cinzel',serif;font-weight:700;font-size:clamp(1.35rem,3vw,1.85rem);color:var(--moss-deep)}
.sec-head .chapter{font-family:'Alegreya SC',serif;color:var(--ember);font-size:.78rem;letter-spacing:.3em;display:block}
.lede{font-size:1.07rem;max-width:74ch;margin-bottom:18px}
.lede em{color:var(--ember)}
p+p{margin-top:.8em}
.callout{border-left:4px solid var(--gold);background:rgba(184,137,46,.12);padding:14px 18px;margin:20px 0;border-radius:0 8px 8px 0;font-size:1rem}
.callout strong{font-family:'Alegreya SC',serif}
h3.subhead{font-family:'Cinzel',serif;color:var(--moss);margin-top:26px;margin-bottom:10px;font-size:1.15rem}
.card-chip{display:inline-block;font-weight:700;color:var(--moss-deep);border-bottom:2px dotted var(--gold);white-space:nowrap}
.pip{display:inline-block;width:.72em;height:.72em;border-radius:50%;margin-right:.28em;vertical-align:baseline;border:1px solid rgba(0,0,0,.35);transform:translateY(.05em)}
.pip.W{background:var(--w)} .pip.U{background:var(--u)} .pip.B{background:var(--b)}
.pip.R{background:var(--r)} .pip.G{background:var(--g)} .pip.C{background:#c9c2ae}
.pip.L{background:linear-gradient(135deg,#8a7a52,#c9b98a)}
.pip.M{background:linear-gradient(135deg,var(--gold-bright),var(--ember))}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:18px}
.panel{background:rgba(255,250,235,.55);border:1px solid rgba(107,93,69,.4);border-radius:10px;padding:18px 20px;box-shadow:0 2px 8px rgba(60,45,20,.08)}
.panel h3{font-family:'Cinzel',serif;font-size:1.05rem;color:var(--moss);margin-bottom:8px}
.panel ul{list-style:none}
.panel li{padding:5px 0 5px 26px;position:relative}
.panel li::before{content:"❧";position:absolute;left:0;color:var(--gold);font-size:1rem}
.curve{display:flex;align-items:flex-end;gap:6px;height:110px;margin:14px 0 4px}
.curve .bar{flex:1;background:linear-gradient(to top,var(--moss),var(--door));border-radius:4px 4px 0 0;position:relative}
.curve .bar span{position:absolute;top:-22px;left:0;right:0;text-align:center;font-family:'Alegreya SC',serif;font-size:.75rem;color:var(--smoke)}
.curve-labels{display:flex;gap:6px}
.curve-labels div{flex:1;text-align:center;font-family:'Alegreya SC',serif;font-size:.78rem;color:var(--smoke)}
/* ===== MECHANICS ===== */
.mech{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:8px}
.mech .panel h3 .tag{float:right;font-family:'Alegreya SC',serif;font-size:.7rem;background:var(--moss-deep);color:var(--parchment);padding:2px 10px;border-radius:999px;letter-spacing:.08em}
.mech .panel p{font-size:.97rem}
/* ===== ARCHETYPE TABS ===== */
.army-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.army-tabs button{font-family:'Cinzel',serif;font-weight:700;font-size:.86rem;padding:10px 15px;border-radius:10px 10px 0 0;cursor:pointer;border:1px solid rgba(107,93,69,.5);border-bottom:none;background:rgba(255,250,235,.4);color:var(--smoke);transition:all .18s}
.army-tabs button .pair{display:block;font-family:'Alegreya SC',serif;font-size:.68rem;letter-spacing:.14em;font-weight:500}
.army-tabs button[aria-selected="true"]{background:var(--moss-deep);color:var(--gold-bright);border-color:var(--gold)}
.army-body{border:1px solid var(--gold);border-radius:0 10px 10px 10px;background:rgba(255,250,235,.55);padding:24px 26px}
.army-panel{display:none}
.army-panel.active{display:block;animation:fadein .35s ease}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.army-panel h3{font-family:'Cinzel',serif;font-size:1.3rem;color:var(--moss-deep)}
.army-panel .speed{font-family:'Alegreya SC',serif;font-size:.78rem;color:var(--ember);letter-spacing:.1em;margin-bottom:10px;display:block}
.army-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:12px}
@media(max-width:720px){.army-cols{grid-template-columns:1fr}}
.wantlist h4{font-family:'Alegreya SC',serif;font-size:.83rem;letter-spacing:.1em;color:var(--smoke);margin-bottom:6px;border-bottom:1px solid rgba(107,93,69,.35);padding-bottom:3px}
.wantlist ul{list-style:none;margin-bottom:14px}
.wantlist li{padding:3px 0;font-size:.95rem}
/* ===== LEDGER (card database) ===== */
.ledger-controls{background:rgba(42,58,34,.94);border:2px solid var(--gold);border-radius:12px;padding:14px 16px;position:sticky;top:52px;z-index:40;box-shadow:0 8px 20px rgba(0,0,0,.25)}
#filterToggle{display:none;width:100%;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:none;color:var(--gold-bright);font-family:'Cinzel',serif;font-weight:700;font-size:.95rem;cursor:pointer;padding:2px 2px}
#filterToggle .chev{transition:transform .25s;font-size:1rem}
#filterToggle .fsummary{font-family:'Alegreya SC',serif;font-weight:500;font-size:.72rem;letter-spacing:.08em;color:var(--parchment);text-align:right}
@media(max-width:760px){
#filterToggle{display:flex}
#filterBody{display:none;margin-top:12px}
.ledger-controls.open #filterBody{display:block}
.ledger-controls.open #filterToggle .chev{transform:rotate(180deg)}
.fgroup .flabel{width:100%;margin-bottom:2px}
.fbtn{font-size:.74rem;padding:5px 10px}
.ledger-controls{top:50px;padding:10px 14px}
}
.fgroup{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.fgroup:last-child{margin-bottom:0}
.fgroup .flabel{font-family:'Alegreya SC',serif;font-size:.72rem;letter-spacing:.15em;color:var(--gold-bright);width:74px;flex:none}
.fbtn{font-family:'Alegreya SC',serif;font-weight:700;font-size:.78rem;letter-spacing:.05em;padding:5px 12px;border-radius:999px;border:1px solid rgba(239,227,194,.4);background:transparent;color:var(--parchment);cursor:pointer;transition:all .15s}
.fbtn:hover{border-color:var(--gold-bright)}
.fbtn.on{background:var(--gold);border-color:var(--gold-bright);color:var(--moss-deep)}
.fbtn .dot{display:inline-block;width:.65em;height:.65em;border-radius:50%;margin-right:.3em;border:1px solid rgba(0,0,0,.3)}
#ledgerSearch{flex:1;min-width:160px;font-family:'Alegreya',serif;font-size:.95rem;padding:6px 14px;border-radius:999px;border:1px solid rgba(239,227,194,.4);background:rgba(239,227,194,.12);color:var(--parchment)}
#ledgerSearch::placeholder{color:rgba(239,227,194,.55)}
#ledgerSearch:focus{outline:2px solid var(--gold-bright)}
.fmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
#ledgerCount{font-family:'Alegreya SC',serif;font-size:.8rem;color:var(--parchment);letter-spacing:.08em}
#ledgerReset{font-family:'Alegreya SC',serif;font-size:.78rem;background:var(--ember);color:#fff;border:none;padding:6px 14px;border-radius:999px;cursor:pointer}
#ledgerReset:hover{filter:brightness(1.15)}
.ledger-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.lcard{display:grid;grid-template-columns:auto 1fr auto;gap:6px 14px;align-items:start;background:rgba(255,250,235,.6);border:1px solid rgba(107,93,69,.4);border-left-width:6px;border-radius:8px;padding:10px 14px}
.lcard .pips{padding-top:3px;white-space:nowrap}
.lcard .body .name{font-family:'Cinzel',serif;font-weight:700;font-size:1rem;color:var(--moss-deep)}
.lcard .body .note{font-size:.9rem;color:var(--ink);line-height:1.45}
.lcard .badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end;white-space:nowrap}
.badge{font-family:'Alegreya SC',serif;font-size:.68rem;letter-spacing:.08em;padding:2px 9px;border-radius:999px;color:#fff}
.b-M{background:linear-gradient(135deg,#c46a1e,#8a3b1f)} .b-R{background:linear-gradient(135deg,#b8892e,#8a6318)}
.b-U{background:linear-gradient(135deg,#7a8a96,#57646d)} .b-C{background:#6b5d45}
.b-bomb{background:#7a2f1f} .b-great{background:#8a6318} .b-good{background:#3d5629} .b-play{background:#6b6558} .b-trap{background:#4a4a4a}
.lcard.t-bomb{border-left-color:#7a2f1f}.lcard.t-great{border-left-color:#b8892e}.lcard.t-good{border-left-color:#5a7a3f}.lcard.t-play{border-left-color:#9a927e}.lcard.t-trap{border-left-color:#5c5c5c}
.arch-tag{font-family:'Alegreya SC',serif;font-size:.7rem;color:var(--ember);letter-spacing:.06em}
.empty-ledger{text-align:center;padding:40px;font-style:italic;color:var(--smoke)}
@media(max-width:620px){.lcard{grid-template-columns:1fr}.lcard .badges{flex-direction:row;align-items:center}}
/* ===== COMBOS ===== */
.combo{background:rgba(255,250,235,.55);border:1px solid rgba(107,93,69,.4);border-radius:10px;padding:16px 20px;margin-top:14px}
.combo .pieces{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-family:'Cinzel',serif;font-weight:700;font-size:.95rem;color:var(--moss-deep)}
.combo .plus{color:var(--gold);font-size:1.2rem;font-family:'Alegreya',serif}
.combo p{font-size:.96rem}
/* ===== CHECKLIST ===== */
.check{list-style:none;margin-top:14px}
.check li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed rgba(107,93,69,.4);cursor:pointer}
.check input{appearance:none;flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--gold);background:rgba(255,250,235,.6);margin-top:2px;cursor:pointer;position:relative;transition:background .15s}
.check input:checked{background:var(--door);border-color:var(--moss-deep)}
.check input:checked::after{content:"✦";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--gold-bright);font-size:.85rem}
.check input:focus-visible{outline:3px solid var(--gold-bright);outline-offset:2px}
.check label{cursor:pointer}
.check li.done label{opacity:.55;text-decoration:line-through}
footer{margin-top:60px;padding:26px 0 8px;border-top:3px double var(--gold);text-align:center;font-size:.87rem;color:var(--smoke)}
footer .rune{font-family:'Cinzel',serif;color:var(--gold);letter-spacing:.4em;margin-bottom:8px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
</style>
</head>
<body>
<div class="scroll-page">
<header class="hero">
<div class="door" role="img" aria-label="A round green hobbit door with a golden knob"></div>
<span class="eyebrow">Magic: The Gathering · Universes Beyond</span>
<h1>An Unexpected Guide<br><span class="amp">to</span> The Hobbit Prerelease</h1>
<p class="sub">The complete battle plan: mechanics, all five armies, a filterable ledger of every card worth playing in every color, the combos, the rules tricks, and the checklist that turns six boosters into a winning 40.</p>
<div class="datestrip">
<span>Prerelease: Aug 7–13, 2026</span>
<span>Global release: Aug 14</span>
<span>Arena & MTGO: Aug 11</span>
<span>First Tolkien set legal in Standard</span>
</div>
</header>
<nav class="wayfinder" role="tablist" aria-label="Guide chapters">
<button role="tab" class="on" data-page="basics" aria-selected="true">Basics</button>
<button role="tab" data-page="mechanics" aria-selected="false">Mechanics</button>
<button role="tab" data-page="armies" aria-selected="false">Five Armies</button>
<button role="tab" data-page="ledger" aria-selected="false">Card Ledger</button>
<button role="tab" data-page="combos" aria-selected="false">Combos</button>
<button role="tab" data-page="tricks" aria-selected="false">Rules Tricks</button>
<button role="tab" data-page="build" aria-selected="false">Deckbuilding</button>
<button role="tab" data-page="tips" aria-selected="false">Table Wisdom</button>
</nav>
<div class="inner">
<!-- ============ BASICS ============ -->
<section id="basics" class="page active">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter I</span>Concerning Prereleases</h2>
</div>
<p class="lede">Your Prerelease Pack holds <strong>six Play Boosters</strong>, a traditional foil rare-or-mythic promo, a Spindown counter, and four seasonal basic lands. You build a <strong>40-card sealed deck</strong> from those six packs plus any number of basics, then play three or four rounds. <em>The Hobbit</em> is a small set (193 cards, five archetypes) that plays like a Core Set — clean, creature-driven, and readable — which rewards fundamentals: curve, removal, and card advantage.</p>
<div class="grid2">
<div class="panel">
<h3>The Golden Ratio</h3>
<ul>
<li><strong>17 lands</strong>, 23 spells (the classic sealed split)</li>
<li><strong>15–17 creatures</strong> — this format is decided in combat</li>
<li>Every quality removal spell in your colors makes the cut</li>
<li>Stick to <strong>two colors</strong>; splash only bombs with real fixing</li>
<li>Never cut Adventure cards — two spells in one raises your whole deck's floor</li>
</ul>
</div>
<div class="panel">
<h3>Target Curve (23 spells)</h3>
<div class="curve" aria-hidden="true">
<div class="bar" style="height:28%"><span>2</span></div>
<div class="bar" style="height:100%"><span>7</span></div>
<div class="bar" style="height:90%"><span>6</span></div>
<div class="bar" style="height:62%"><span>4</span></div>
<div class="bar" style="height:40%"><span>3</span></div>
<div class="bar" style="height:15%"><span>1</span></div>
</div>
<div class="curve-labels"><div>1 mana</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6+</div></div>
<p style="font-size:.9rem;margin-top:8px">Peak at two and three mana. The set is light on fliers, so games stall — but you must survive to that stall first. Black decks want 10+ Swamps for the double-black removal.</p>
</div>
</div>
<div class="callout"><strong>How to sort your pool:</strong> open all six packs, sort by color, set multicolor and artifact cards aside. Find your removal and rares first — the two colors with the best threats <em>and</em> the most interaction are your deck nine times out of ten. Then jump to the <a href="#ledger" style="color:var(--ember);font-weight:700">Card Ledger</a> below and filter by your colors to see exactly what you're working with.</div>
</section>
<!-- ============ MECHANICS ============ -->
<section id="mechanics" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter II</span>The Mechanics of Middle-earth</h2>
</div>
<p class="lede">Two new mechanics, three returning ones, and a novelty counter. Know these cold before round one.</p>
<div class="mech">
<div class="panel">
<h3>Storied <span class="tag">New · R/W</span></h3>
<p>Control <strong>three or more</strong> artifacts, legendaries, and/or Sagas (any combination) and you gain an <em>enduring story</em> — permanently, for the rest of the game, even if you later drop below three. It appears on the nine legendary dwarves of Bilbo's company; each is legendary itself, so every one you cast is a third of the way there. Priority rule: a working deck first, story-enablers second — removal beats a mediocre Saga even though the Saga counts.</p>
</div>
<div class="panel">
<h3>Recruit <span class="tag">New · W/U</span></h3>
<p>Draw a card, then discard a card. Discard a <strong>nonland</strong> and you create a 1/1 white Human Soldier. The decision rule: "do I need this spell later, or is a 1/1 better right now?" Early game, usually keep spells and pitch lands; late game, pitch spells for free bodies. A player who has recruited more times is usually favored in long games — value these effects highly.</p>
</div>
<div class="panel">
<h3>Adventure <span class="tag">Returning · All colors</span></h3>
<p>Two cards in one: cast the instant/sorcery half, the card waits in exile, and you cast the creature later. Built-in 2-for-1s that dominate the midgame. Every color has one common Adventure creature, and all five are playable.</p>
</div>
<div class="panel">
<h3>Amass Goblins <span class="tag">Returning · B/R</span></h3>
<p>No Army? Create a 0/0 Goblin Army token, then add +1/+1 counters equal to the amass number; otherwise just grow the Army you have. Amassing is strongest when you <em>don't</em> control an Army (a new body beats a bigger one) — which is why BR sacrifice effects secretly combo with it. The token is also a Goblin for tribal purposes.</p>
</div>
<div class="panel">
<h3>Ferocious <span class="tag">Returning · B/G</span></h3>
<p>Bonuses while you control a <strong>4+ power</strong> creature. Only six ferocious cards exist (Nasty Little Rabbit, Nighthowl Pursuer, Ravening Warg, Wargling, The Chief Warg, Wilderland Scrounger) — four cost two or less and five trigger on attack, so this is an <em>aggressive</em> deck, not a durdle deck. Keep your curve low and don't warp your deck with expensive fatties just to enable it.</p>
</div>
<div class="panel">
<h3>Landfall <span class="tag">Returning · G/U</span></h3>
<p>Triggers whenever a land enters under your control, mostly on Elves. Land-fetchers like <span class="card-chip"><span class="pip L"></span>Hobbit Hole</span> and <span class="card-chip"><span class="pip L"></span>Elven Passage</span> net double triggers. Late-game land draws stop being dead cards — every extra land is a spell.</p>
</div>
<div class="panel">
<h3>Hone Counters <span class="tag">New · Niche</span></h3>
<p>Counters on Equipment granting +1/+0 each. Only two cards make them (<span class="card-chip"><span class="pip M"></span>Dwalin, Weaponmaster</span> and <span class="card-chip"><span class="pip C"></span>Sting, Bilbo's Sword</span>), so know it exists and move on.</p>
</div>
<div class="panel">
<h3>Legend-Heavy Design <span class="tag">55 of 193 cards</span></h3>
<p>You'll open duplicate legends. Rule of thumb: one copy of mediocre legends, two of good ones, every copy of bombs. The set is packed with looters (<span class="card-chip"><span class="pip U"></span>Bilbo, Luckwearer</span>, <span class="card-chip"><span class="pip C"></span>Key to the Side-Door</span>, recruit itself) that turn dead duplicates into fresh cards — so duplicates of great legends like Bilbo Baggins, Burglar are genuinely fine to run.</p>
</div>
</div>
</section>
<!-- ============ ARCHETYPES ============ -->
<section id="armies" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter III</span>The Battle of Five Armies</h2>
</div>
<p class="lede">Five two-color pairs, each an army from the story's climax. Your sealed deck should live in one of these homes — and remember you can <em>borrow</em>: a good recruit card is still good in RW, and a 4-power goblin Army turns on ferocious in BG.</p>
<div class="army-tabs" role="tablist" aria-label="Archetypes">
<button role="tab" aria-selected="true" aria-controls="wu" id="tab-wu">Lake-town Levy<span class="pair">W/U · Recruit Humans</span></button>
<button role="tab" aria-selected="false" aria-controls="br" id="tab-br">Goblin Horde<span class="pair">B/R · Amass Goblins</span></button>
<button role="tab" aria-selected="false" aria-controls="bg" id="tab-bg">Warg Pack<span class="pair">B/G · Ferocious</span></button>
<button role="tab" aria-selected="false" aria-controls="rw" id="tab-rw">Thorin's Company<span class="pair">R/W · Storied Dwarves</span></button>
<button role="tab" aria-selected="false" aria-controls="gu" id="tab-gu">Woodland Realm<span class="pair">G/U · Landfall Elves</span></button>
</div>
<div class="army-body">
<div class="army-panel active" id="wu" role="tabpanel" aria-labelledby="tab-wu">
<h3>White-Blue: Recruit Humans</h3>
<span class="speed">Speed: Flexible — go wide or grind · Possibly the strongest archetype when it comes together</span>
<div class="army-cols">
<div>
<p>The "draw two cards in a turn" deck. Recruit constantly filters your draws while stocking the board with Soldiers, and payoffs like <span class="card-chip"><span class="pip U"></span>Lakeshore Apothecary</span>, <span class="card-chip"><span class="pip U"></span>Lake-town Toymaker</span>, and <span class="card-chip"><span class="pip W"></span>Ravenhill Flock</span> reward every extra draw. Play it as go-wide tokens or as a control shell that never runs out of gas.</p>
<p>Key insight: <strong>recruit barely needs support</strong> — the mechanic is strong on its own, so don't over-prioritize the payoffs over generically good cards. <span class="card-chip"><span class="pip U"></span>Plunder the Trollshaws</span> is the fuel: real card advantage, and the perfect card to pitch to a recruit trigger. <span class="card-chip"><span class="pip U"></span>Bilbo Baggins, Burglar</span> draws on entry, triggering your second-draw cards for free.</p>
</div>
<div class="wantlist">
<h4>Signpost</h4>
<ul><li><span class="pip W"></span><span class="pip U"></span>Bard the Bowman</li></ul>
<h4>Look for</h4>
<ul>
<li><span class="pip W"></span><span class="pip U"></span>Patient Instructor</li>
<li><span class="pip U"></span>Lakeshore Apothecary</li>
<li><span class="pip U"></span>Plunder the Trollshaws</li>
<li><span class="pip U"></span>Bilbo Baggins, Burglar</li>
<li><span class="pip W"></span>Dwarven Provisioner</li>
<li><span class="pip W"></span>The Mountain-king's Return</li>
</ul>
</div>
</div>
</div>
<div class="army-panel" id="br" role="tabpanel" aria-labelledby="tab-br">
<h3>Black-Red: Amass Goblins</h3>
<span class="speed">Speed: Aggro-attrition with the most removal at the table</span>
<div class="army-cols">
<div>
<p>Two overlapping engines: grow a Goblin Army, and sacrifice cheap bodies for value. They meet in the middle — sacrifice a small Army, and your next amass makes a <em>fresh creature</em> instead of just growing an old one. Repeatable payoffs: <span class="card-chip"><span class="pip R"></span>Snowslope Hunter</span>, <span class="card-chip"><span class="pip B"></span>Gollum the Abandoned</span>, <span class="card-chip"><span class="pip M"></span>Bolg's Company</span>.</p>
<p><span class="card-chip"><span class="pip B"></span>Stir Up Trouble</span> is your best sac outlet — cash in spent bodies or Armies, and it even hits artifacts. <span class="card-chip"><span class="pip M"></span>Bolg of the North</span> is removal plus an Army-grower in one card. Use spot removal to clear big blockers, then swing wide with everything.</p>
</div>
<div class="wantlist">
<h4>Signpost</h4>
<ul><li><span class="pip B"></span><span class="pip R"></span>Bolg of the North</li></ul>
<h4>Look for</h4>
<ul>
<li><span class="pip R"></span>Snowslope Hunter</li>
<li><span class="pip B"></span>Stir Up Trouble</li>
<li><span class="pip B"></span><span class="pip R"></span>Fearsome Goblin Pair</li>
<li><span class="pip B"></span>Goblin-town Flunkies</li>
<li><span class="pip B"></span>Stony-Voiced Goblins</li>
<li><span class="pip B"></span>Rage into the Valley</li>
</ul>
</div>
</div>
</div>
<div class="army-panel" id="bg" role="tabpanel" aria-labelledby="tab-bg">
<h3>Black-Green: Ferocious Wolves</h3>
<span class="speed">Speed: Aggressive midrange · Least synergy-dependent — expect it everywhere</span>
<div class="army-cols">
<div>
<p>The most forgiving army: it's a midrange pile of individually strong cards, seasoned with 4-power creatures to switch on ferocious. Because payoffs trigger incidentally, this is the default home for a powerful-but-scattered pool. Note that five of the six ferocious cards trigger on <em>attack</em> — this deck wants to be turning sideways, not sitting back.</p>
<p>Ways to reach 4 power: naturally big bodies (<span class="card-chip"><span class="pip G"></span>Ordinary Bear</span>, <span class="card-chip"><span class="pip G"></span>Wilderland Scrounger</span>), <span class="card-chip"><span class="pip B"></span>Desolation Prowler</span>'s self-pump, equipment like <span class="card-chip"><span class="pip B"></span>Crude Bent Blade</span>, permanent buffs (<span class="card-chip"><span class="pip G"></span>Beorn's Hospitality</span>, <span class="card-chip"><span class="pip M"></span>Duskwatch Hunter</span>), or a fattened Goblin Army. Stack multiple enablers — it's harder to keep online than it looks, and keep your two-drop count healthy.</p>
</div>
<div class="wantlist">
<h4>Signpost</h4>
<ul><li><span class="pip B"></span><span class="pip G"></span>The Chief Warg</li></ul>
<h4>Look for</h4>
<ul>
<li><span class="pip B"></span><span class="pip G"></span>Large Bear</li>
<li><span class="pip B"></span>Desolation Prowler</li>
<li><span class="pip G"></span>Nasty Little Rabbit</li>
<li><span class="pip B"></span>Ravening Warg</li>
<li><span class="pip G"></span>Old Fat Spider</li>
<li><span class="pip G"></span>Boughside Wanderers</li>
</ul>
</div>
</div>
</div>
<div class="army-panel" id="rw" role="tabpanel" aria-labelledby="tab-rw">
<h3>Red-White: Storied Dwarves</h3>
<span class="speed">Speed: The most aggressive pair · Explosive when the story lands early</span>
<div class="army-cols">
<div>
<p>Legendary dwarves plus equipment race toward an enduring story, and once it's online payoffs like <span class="card-chip"><span class="pip M"></span>Bifur, Melodic Rider</span> and <span class="card-chip"><span class="pip W"></span>Ori, Keeper of Songs</span> make combat miserable for your opponent. With a good curve the story can land turn four. The best storied payoff in the set is <span class="card-chip"><span class="pip W"></span>Fíli the Pathfinder</span> — the team buff is excellent, and the card is fine even without it.</p>
<p>Two tensions to manage: this pair is naturally <em>aggressive</em>, so don't hold legends back from combat just to protect the story count (<span class="card-chip"><span class="pip M"></span>Thorin Oakenshield</span>'s best feature is attacking for three on turn two). And it can't be forced — count your legendary dwarves and useful artifacts before committing. <span class="card-chip"><span class="pip R"></span>Dori, Bearer of Friends</span> alone provides two story pieces in one card.</p>
</div>
<div class="wantlist">
<h4>Signpost</h4>
<ul><li><span class="pip R"></span><span class="pip W"></span>Thorin Oakenshield</li></ul>
<h4>Look for</h4>
<ul>
<li><span class="pip R"></span><span class="pip W"></span>Bifur, Melodic Rider</li>
<li><span class="pip W"></span>Dwarven Shortsword</li>
<li><span class="pip R"></span>Dori, Bearer of Friends</li>
<li><span class="pip W"></span>Ori, Keeper of Songs / Iron Hills Blacksmith</li>
<li><span class="pip R"></span>Óin the Brave</li>
<li><span class="pip B"></span><span class="pip R"></span>Goblin Plate Mail</li>
</ul>
</div>
</div>
</div>
<div class="army-panel" id="gu" role="tabpanel" aria-labelledby="tab-gu">
<h3>Green-Blue: Landfall Elves</h3>
<span class="speed">Speed: The grindiest, most tribal deck · Wins the long game</span>
<div class="army-cols">
<div>
<p>The value engine. Elf payoffs like <span class="card-chip"><span class="pip M"></span>Woodland Weavemaster</span> and <span class="card-chip"><span class="pip M"></span>Thranduil, Sindarin Liege</span> reward maximum elf density, while <span class="card-chip"><span class="pip G"></span>Wood Elves</span>, <span class="card-chip"><span class="pip G"></span>Boughside Wanderers</span>, and <span class="card-chip"><span class="pip M"></span>Silvan Reveler</span> bury opponents in cards the longer the game runs. <span class="card-chip"><span class="pip M"></span>Mirkwood Nurturer</span> rebuys a land for another landfall trigger — or resets any creature with a good enters ability.</p>
<p><strong>Weakness:</strong> thin removal — essentially <span class="card-chip"><span class="pip G"></span>Quarrel</span>, <span class="card-chip"><span class="pip U"></span>Enchanted River's Grasp</span>, and <span class="card-chip"><span class="pip G"></span>Troll Negotiations</span>. Take every copy. And don't just spin wheels: keep a real curve, affect the board early, and win before a bomb you can't answer takes over.</p>
</div>
<div class="wantlist">
<h4>Signpost</h4>
<ul><li><span class="pip G"></span><span class="pip U"></span>Silvan Reveler</li></ul>
<h4>Look for</h4>
<ul>
<li><span class="pip G"></span><span class="pip U"></span>Woodland Weavemaster</li>
<li><span class="pip G"></span><span class="pip U"></span>Thranduil, Sindarin Liege</li>
<li><span class="pip G"></span><span class="pip U"></span>Mirkwood Nurturer</li>
<li><span class="pip U"></span>Elven Raft-Steerer</li>
<li><span class="pip G"></span>Wood Elves</li>
<li><span class="pip G"></span>Mirkwood Pathmaker</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- ============ LEDGER ============ -->
<section id="ledger" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter IV</span>The Red Book — Every Card Worth Knowing</h2>
</div>
<p class="lede">The full ledger: bombs, workhorses, and traps across <em>every</em> color, rarity, and archetype, sorted best-first. Open your pool, tap your colors below, and see exactly what to play. Traps are included so you don't get seduced by shiny rares that lose games.</p>
<div class="ledger-controls" role="region" aria-label="Card filters">
<button id="filterToggle" aria-expanded="false" aria-controls="filterBody">
<span>⚙ Filters</span>
<span class="fsummary" id="filterSummary">tap to open</span>
<span class="chev">▾</span>
</button>
<div id="filterBody">
<div class="fgroup">
<span class="flabel">COLOR</span>
<button class="fbtn fc" data-f="color" data-v="W"><span class="dot" style="background:#e9e2c8"></span>White</button>
<button class="fbtn fc" data-f="color" data-v="U"><span class="dot" style="background:#5a8bb0"></span>Blue</button>
<button class="fbtn fc" data-f="color" data-v="B"><span class="dot" style="background:#4a4054"></span>Black</button>
<button class="fbtn fc" data-f="color" data-v="R"><span class="dot" style="background:#b05038"></span>Red</button>
<button class="fbtn fc" data-f="color" data-v="G"><span class="dot" style="background:#5f7d45"></span>Green</button>
<button class="fbtn fc" data-f="color" data-v="MULTI"><span class="dot" style="background:linear-gradient(135deg,#d4a843,#9c4531)"></span>Multi/Hybrid</button>
<button class="fbtn fc" data-f="color" data-v="C"><span class="dot" style="background:#c9c2ae"></span>Colorless</button>
<button class="fbtn fc" data-f="color" data-v="L"><span class="dot" style="background:#a3906a"></span>Land</button>
</div>
<div class="fgroup">
<span class="flabel">RARITY</span>
<button class="fbtn fr" data-f="rar" data-v="M">Mythic</button>
<button class="fbtn fr" data-f="rar" data-v="R">Rare</button>
<button class="fbtn fr" data-f="rar" data-v="U">Uncommon</button>
<button class="fbtn fr" data-f="rar" data-v="C">Common</button>
</div>
<div class="fgroup">
<span class="flabel">RATING</span>
<button class="fbtn ft" data-f="tier" data-v="bomb">Bomb</button>
<button class="fbtn ft" data-f="tier" data-v="great">Great</button>
<button class="fbtn ft" data-f="tier" data-v="good">Good</button>
<button class="fbtn ft" data-f="tier" data-v="play">Playable</button>
<button class="fbtn ft" data-f="tier" data-v="trap">Trap</button>
</div>
<div class="fgroup">
<span class="flabel">ARMY</span>
<button class="fbtn fa" data-f="arch" data-v="WU">W/U Recruit</button>
<button class="fbtn fa" data-f="arch" data-v="BR">B/R Goblins</button>
<button class="fbtn fa" data-f="arch" data-v="BG">B/G Ferocious</button>
<button class="fbtn fa" data-f="arch" data-v="RW">R/W Dwarves</button>
<button class="fbtn fa" data-f="arch" data-v="GU">G/U Elves</button>
<button class="fbtn fa" data-f="arch" data-v="ANY">Any Deck</button>
</div>
<div class="fgroup">
<span class="flabel">SEARCH</span>
<input id="ledgerSearch" type="search" placeholder="Search a card name or keyword — 'removal', 'Bilbo', 'equipment'..." aria-label="Search cards">
</div>
<div class="fmeta">
<span id="ledgerCount"></span>
<button id="ledgerReset">Clear all filters</button>
</div>
</div><!-- /filterBody -->
</div>
<div class="ledger-list" id="ledgerList" aria-live="polite"></div>
</section>
<!-- ============ COMBOS ============ -->
<section id="combos" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter V</span>Riddles in the Dark — Combos & Synergies</h2>
</div>
<p class="lede">No infinite loops here — but these pairings quietly win limited games.</p>
<div class="combo">
<div class="pieces"><span class="pip G"></span>Wood Elves <span class="plus">+</span> <span class="pip G"></span>Boughside Wanderers <span class="plus">+</span> <span class="pip M"></span>Mirkwood Nurturer</div>
<p>Green's bread and butter. Wood Elves ramps you to Wanderers a turn early, the Wanderers chain into each other, and Nurturer bounces a land back to hand for a fresh landfall trigger — or resets any creature with an enters ability. Every piece is card advantage.</p>
</div>
<div class="combo">
<div class="pieces">Recruit triggers <span class="plus">+</span> <span class="pip U"></span>Plunder the Trollshaws / <span class="pip W"></span>Moment of Glory / <span class="pip M"></span>Eagle's Rescue</div>
<p>These cards give bonus value when discarded — perfect recruit fodder. You loot into a better card, get your 1/1 Soldier, <em>and</em> collect the discard bonus: three effects for one activation.</p>
</div>
<div class="combo">
<div class="pieces">Sacrifice an Army <span class="plus">+</span> amass again</div>
<p>The BR engine in one sentence: amass is best when you <em>don't</em> control an Army, so sacrificing a spent one to <span class="card-chip"><span class="pip B"></span>Stir Up Trouble</span>, <span class="card-chip"><span class="pip R"></span>Snowslope Hunter</span>, or <span class="card-chip"><span class="pip M"></span>Bolg of the North</span> converts it into value and makes your next amass a whole new creature. <span class="card-chip"><span class="pip B"></span>Gollum the Abandoned</span> and <span class="card-chip"><span class="pip M"></span>Bolg's Company</span> keep the loop turning.</p>
</div>
<div class="combo">
<div class="pieces">Legendary dwarves <span class="plus">+</span> <span class="pip W"></span>Dwarven Shortsword / <span class="pip M"></span>Goblin Plate Mail</div>
<p>Every legend and artifact stacks toward your enduring story — turn-two Shortsword into turn-three Dori is story-complete on turn three, switching on Ori, Óin, Bifur, and Fíli while the equipment itself wins combats. Shortsword even leaves its sword behind when the dwarf dies.</p>
</div>
<div class="combo">
<div class="pieces">Recruit <span class="plus">+</span> Landfall</div>
<p>The sneakiest cross-archetype overlap: recruit wants you discarding <em>spells</em> (for the token), which keeps lands in hand — exactly what landfall wants. A WUG tempo pile can accidentally do both.</p>
</div>
<div class="combo">
<div class="pieces"><span class="pip R"></span>Dori, Bearer of Friends <span class="plus">+</span> your off-color bomb</div>
<p>Dori's Treasure is the format's best splash enabler. With a Treasure plus a common dual or <span class="card-chip"><span class="pip L"></span>Hobbit Hole</span>, splashing a <span class="card-chip"><span class="pip R"></span>Gandalf, Goblins' Bane</span> or a Company rare is entirely reasonable.</p>
</div>
<div class="combo">
<div class="pieces">Board stall <span class="plus">+</span> <span class="pip U"></span>Bilbo, Luckwearer / <span class="pip U"></span>Elvenking's Harper / <span class="pip C"></span>Key to the Side-Door</div>
<p>Only twelve creatures in the whole set fly, so games gum up. Unblockable damage is a genuine win condition — Luckwearer chips in while looting, and the Key sneaks anything through the side door.</p>
</div>
<div class="combo">
<div class="pieces">Amass <span class="plus">+</span> Ferocious</div>
<p>In BG-with-goblins or a BRG splash, an Army with four counters is a ferocious enabler that grows every turn. <span class="card-chip"><span class="pip B"></span>Crude Bent Blade</span> and <span class="card-chip"><span class="pip B"></span>Reverent Howl</span> also flip the switch on demand.</p>
</div>
<div class="combo">
<div class="pieces"><span class="pip U"></span>Bilbo Baggins, Burglar <span class="plus">+</span> draw-second payoffs</div>
<p>Bilbo draws a card when he enters, so casting him on your turn triggers <span class="card-chip"><span class="pip U"></span>Lakeshore Apothecary</span>, <span class="card-chip"><span class="pip U"></span>Lake-town Toymaker</span>, and <span class="card-chip"><span class="pip M"></span>Bard the Bowman</span> for free. His Adventure half, Take a Glance, makes your opening turns absurdly consistent — he's the best common in the set.</p>
</div>
</section>
<!-- ============ RULES TRICKS ============ -->
<section id="tricks" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter VI</span>A Burglar's Tricks — Plays That Steal Games</h2>
</div>
<p class="lede">Specific, legal, and mean. Most opponents at a prerelease won't see these coming.</p>
<div class="grid2">
<div class="panel">
<h3>The Pony Block</h3>
<p style="font-size:.96rem">Block with <span class="card-chip"><span class="pip C"></span>Troop of Ponies</span>, then sacrifice it with the ability on the stack. The attacker deals no damage to you (unless it tramples) and you still fetch your lands. Free Fog plus ramp.</p>
</div>
<div class="panel">
<h3>The Double Wizard</h3>
<p style="font-size:.96rem">At twelve mana, activate <span class="card-chip"><span class="pip U"></span>Gandalf, Wandering Wizard</span> twice in response to itself for six total cards. Announce both activations before letting the first resolve.</p>
</div>
<div class="panel">
<h3>The Riddle Bluff</h3>
<p style="font-size:.96rem"><span class="card-chip"><span class="pip U"></span>Riddles in the Dark</span> is a mind game. The obvious split is 2–2 — but when your four cards are mediocre, put a <em>land</em> face down and show three spells. Opponents often hand you all three out of fear of the hidden card.</p>
</div>
<div class="panel">
<h3>Azog's Bargain</h3>
<p style="font-size:.96rem">You can target your <em>own</em> Goblin Army with <span class="card-chip"><span class="pip B"></span>Azog, Moria's Ruin</span> — destroy it, draw the card, and your next amass builds a brand-new Army from scratch.</p>
</div>
<div class="panel">
<h3>Thorin Needs a Sword</h3>
<p style="font-size:.96rem"><span class="card-chip"><span class="pip R"></span>Thorin, Mountain-king</span> is mediocre naked but a two-for-one machine with equipment — if you open him, prioritize every equipment in your pool, even <span class="card-chip"><span class="pip C"></span>Well-Worn Spatula</span>.</p>
</div>
<div class="panel">
<h3>The Arkenstone Is Always On</h3>
<p style="font-size:.96rem">Don't be scared off by the expensive Adventure half — <span class="card-chip"><span class="pip C"></span>The Arkenstone</span> is spectacular in <em>any</em> deck even if you never cast Seek the Heart. Slam it every time.</p>
</div>
<div class="panel">
<h3>Counter Cleanup</h3>
<p style="font-size:.96rem"><span class="card-chip"><span class="pip U"></span>Enchanted River's Grasp</span> removes all counters from what it bounces — aim it at a fat Goblin Army and it undoes every amass they ever made. Conversely, <span class="card-chip"><span class="pip U"></span>Uneasy Partings</span> taxes nontoken creatures, so it's cheapest against tokens.</p>
</div>
<div class="panel">
<h3>Patience with Trolls</h3>
<p style="font-size:.96rem">Hold <span class="card-chip"><span class="pip G"></span>Troll Negotiations</span> and <span class="card-chip"><span class="pip G"></span>Quarrel</span> until your opponent taps out — fight spells fizzle if your creature is removed in response, so cast them when interaction is off the table.</p>
</div>
</div>
</section>
<!-- ============ DECKBUILD ============ -->
<section id="build" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter VII</span>Packing for the Journey — Deckbuilding Checklist</h2>
</div>
<p class="lede">Run through this before you sleeve up. Tap each step as you go.</p>
<ul class="check">
<li><input type="checkbox" id="c1"><label for="c1"><strong>Sort by color, pull rares and removal first.</strong> The two colors with the best bombs <em>and</em> the most interaction are your deck.</label></li>
<li><input type="checkbox" id="c2"><label for="c2"><strong>Filter the Card Ledger by your two colors</strong> and make sure every Bomb/Great/Good card you own in them is in your 23.</label></li>
<li><input type="checkbox" id="c3"><label for="c3"><strong>Count to 23 spells + 17 lands.</strong> 15–17 creatures, curve peaking at two and three mana. Double-black removal wants 10+ Swamps.</label></li>
<li><input type="checkbox" id="c4"><label for="c4"><strong>Every removal spell makes the cut:</strong> Bilbo's Deadly Slice, Pinecone Strike, Magnificent End, Enchanted River's Grasp, Quarrel, Gnashing of Teeth, Stone by Sunlight, Smaug the Great Calamity, Celebrate the Mountain-king.</label></li>
<li><input type="checkbox" id="c5"><label for="c5"><strong>Keep your Adventure cards.</strong> 2-for-1s that raise the whole deck's floor — never cut them for a flashier five-drop.</label></li>
<li><input type="checkbox" id="c6"><label for="c6"><strong>Check your engine count.</strong> Storied needs legends + artifacts; ferocious needs 4-power enablers; recruit needs looters + payoffs. Thin count? Pivot to good cards over synergy — a solid functioning deck comes first.</label></li>
<li><input type="checkbox" id="c7"><label for="c7"><strong>Add Thrór's Map to literally any deck</strong>, and Troop of Ponies if you're splashing.</label></li>
<li><input type="checkbox" id="c8"><label for="c8"><strong>Splash only bombs and premium removal</strong> — and only with real fixing (common duals, Hobbit Hole, Dori's Treasure). No fixing, no splash — the format is stingy with mana help.</label></li>
<li><input type="checkbox" id="c9"><label for="c9"><strong>Duplicate legends:</strong> one copy if mediocre, two if good, all copies if it's a bomb — especially with looters to pitch extras.</label></li>
<li><input type="checkbox" id="c10"><label for="c10"><strong>Between games you may rebuild freely in sealed.</strong> Losing to fliers? Board in reach blockers. Facing a grindfest? Swap in your card advantage. Your other 40+ cards are a free sideboard — use them.</label></li>
</ul>
</section>
<!-- ============ TIPS ============ -->
<section id="tips" class="page">
<div class="sec-head">
<div class="sec-door" aria-hidden="true"></div>
<h2><span class="chapter">Chapter VIII</span>Wisdom for the Table</h2>
</div>
<div class="grid2">
<div class="panel">
<h3>Reading the Battlefield</h3>
<ul>
<li>Expect <strong>board stalls</strong> — the set is light on evasion, so 2-for-1s and unblockable creatures decide long games.</li>
<li>Against RW, kill the dwarves <em>before</em> the enduring story lands — once it's online, it's online forever.</li>
<li>Against BG, hold removal for their 4-power creature; killing it turns off every ferocious card they control.</li>
<li>Against GU, be the aggressor — their removal is thin and their engines need time.</li>
<li>Against BR, don't trade your good creatures into a growing Army; bounce or exile it instead.</li>
</ul>
</div>
<div class="panel">
<h3>Prerelease Etiquette & Edge</h3>
<ul>
<li>Preregister — recent prereleases have been selling out, and this is the first Standard-legal Tolkien set.</li>
<li>Play deliberately: reread cards, yours and theirs. New-set losses come from missed text, not bad luck.</li>
<li>Call a judge for anything — that's their job, and it's never rude.</li>
<li>Bring spare basic lands and sleeves; stores run dry fast.</li>
<li>It's semi-competitive by design. Crack packs, make friends, have fun — that's the real win condition.</li>
</ul>
</div>
</div>
</section>
<footer>
<div class="rune">✦ ✦ ✦</div>
<p><em>"May the hair on your toes never fall out."</em></p>
<p style="margin-top:8px">Strategy synthesized from Draftsim's sealed & archetype guides, Card Game Base's draft guide, Seth Manfield's Ultimate Guard prerelease breakdown, and Wizards of the Coast's official prerelease materials · August 2026. Color assignments for a few unpreviewed-in-detail cards are best-inference — trust the card in front of you.</p>
</footer>
</div><!-- /inner -->
</div><!-- /scroll-page -->
<script>
/* ================= CARD DATABASE =================
c: colors (W U B R G; two entries = multicolor/hybrid; C = colorless/artifact; L = land)
r: rarity M/R/U/C t: tier bomb/great/good/play/trap a: archetype tags n: note
*/
var DB=[
/* ---- MYTHICS ---- */
{name:"Gollum, Riddle Master",c:["B"],r:"M",t:"bomb",a:["ANY"],n:"Far above rate for two mana — cast it on curve in any black deck and never look back."},
{name:"Gandalf, Goblins' Bane",c:["R"],r:"M",t:"bomb",a:["ANY"],n:"The best Adventure in the set; worth splashing off Treasures and duals."},
{name:"Smaug the Magnificent",c:["R"],r:"M",t:"bomb",a:["ANY"],n:"A dragon-sized game-ender. If you open it, red is one of your colors."},
{name:"Thorin, Mountain-king",c:["R"],r:"M",t:"bomb",a:["RW"],n:"Mediocre naked, monstrous with equipment — prioritize every equipment in your pool for him."},
{name:"Beorn the Fierce",c:["G"],r:"M",t:"bomb",a:["BG","GU"],n:"Green's takeover threat; instantly enables ferocious."},
{name:"Dancing from Dark to Dawn",c:["G"],r:"M",t:"bomb",a:["ANY"],n:"Swingy green mythic that takes over stalled boards."},
{name:"The Arkenstone",c:["C"],r:"M",t:"bomb",a:["ANY"],n:"Spectacular in every deck even if you never cast the Adventure half. Always play it."},
{name:"The Queen of Dale",c:["W"],r:"M",t:"great",a:["ANY"],n:"Two-mana creature well above rate — great in any white deck."},
{name:"Bilbo, Thief in the Night",c:["U","B"],r:"M",t:"great",a:["ANY"],n:"Spellslinger payoff; best in instant/sorcery-heavy piles (Grixis leans hardest)."},
{name:"Elrond, Moon-Reader",c:["U"],r:"M",t:"good",a:["GU","WU"],n:"Solid value legend for blue decks."},
{name:"Bard, King of Dale",c:["W","U"],r:"M",t:"good",a:["WU"],n:"Strong in the recruit deck; a fine reason to be WU."},
{name:"Inside Information",c:["U"],r:"M",t:"play",a:["ANY"],n:"Card advantage that's slower than it looks — playable, not exciting."},
{name:"Orcrist, Goblin-cleaver",c:["C"],r:"M",t:"play",a:["RW"],n:"Legendary equipment; fine with dwarves, unimpressive elsewhere."},
{name:"Gleaming Splendor",c:["W"],r:"M",t:"trap",a:[],n:"Flashy mythic that doesn't affect the board enough. Leave it in the binder."},
{name:"Fateful Discovery",c:["B"],r:"M",t:"trap",a:[],n:"Too slow and situational for 40-card decks."},
/* ---- WHITE RARES ---- */
{name:"An Unexpected Party",c:["W"],r:"R",t:"bomb",a:["WU","RW"],n:"Floods the board — a party in a can."},
{name:"Fíli the Pathfinder",c:["W"],r:"R",t:"bomb",a:["RW"],n:"The best storied payoff in the set: excellent team buff, still good without the story."},
{name:"The Eagles Are Coming!",c:["W"],r:"R",t:"bomb",a:["ANY"],n:"Massive flying swing in a format with almost no fliers."},
{name:"Kíli the Resourceful",c:["W"],r:"R",t:"great",a:["RW"],n:"Efficient legendary dwarf that pulls his weight in any white deck."},
{name:"Roads Go Ever, Ever On",c:["W"],r:"R",t:"great",a:["ANY"],n:"A saga that's never getting cut — steady value plus a storied count piece."},
{name:"Settle the Wreckage",c:["W"],r:"R",t:"great",a:["ANY"],n:"Sweeper insurance against wide boards; devastating vs Goblins and Soldiers."},
{name:"Belladonna Took",c:["W"],r:"R",t:"good",a:["WU"],n:"Solid value legend."},
{name:"Bilbo's Gambit",c:["W"],r:"R",t:"trap",a:[],n:"Cute effect, no board impact. Skip it."},
/* ---- BLUE RARES ---- */
{name:"Great Gilded Boat",c:["U"],r:"R",t:"bomb",a:["ANY"],n:"Blue's game-ender; worth splashing."},
{name:"Riddles in the Dark",c:["U"],r:"R",t:"great",a:["ANY"],n:"Card advantage plus mind games — see the Riddle Bluff in Chapter VI."},
{name:"The Lord of the Eagles",c:["U"],r:"R",t:"great",a:["ANY"],n:"Evasive rare in a flightless format; also a fun fliers build-around."},
{name:"Most Decrepit Old Bird",c:["U"],r:"R",t:"good",a:["ANY"],n:"Spellslinger value; best with lots of instants and sorceries."},
{name:"Roll-Roll-Roll-Roll",c:["U"],r:"R",t:"play",a:["ANY"],n:"One of the set's only flicker effects — niche but occasionally sweet."},
{name:"Uncover the Moon-Letters",c:["U"],r:"R",t:"play",a:["ANY"],n:"Fine card selection, low impact."},
{name:"Wizard's Staff",c:["U"],r:"R",t:"trap",a:[],n:"Does too little for the mana. Binder fodder."},
/* ---- BLACK RARES ---- */
{name:"Head of the Hunt",c:["B"],r:"R",t:"bomb",a:["BG","BR"],n:"A predator that ends games; instantly ferocious-sized."},
{name:"Rhovanion Rampager",c:["B"],r:"R",t:"bomb",a:["BG","BR"],n:"Huge threat that demands an immediate answer."},
{name:"Azog, Moria's Ruin",c:["B"],r:"R",t:"great",a:["BR"],n:"Removal on a legend — and you can destroy your own Army for value (Chapter VI)."},
{name:"The Master of Lake-town",c:["B"],r:"R",t:"great",a:["ANY"],n:"Grindy value engine for any black deck."},
{name:"The Sackville-Bagginses",c:["B"],r:"R",t:"great",a:["ANY"],n:"Relentless card advantage — greedy relatives, greedy value."},
{name:"Along the Crooked Way",c:["B"],r:"R",t:"good",a:["BR"],n:"Solid black value spell."},
{name:"Supper for Spiders",c:["B"],r:"R",t:"trap",a:[],n:"Situational and slow. Don't get webbed."},
/* ---- RED RARES ---- */
{name:"Dáin Ironfoot",c:["R"],r:"R",t:"great",a:["RW"],n:"Premier legendary dwarf; strong body plus storied synergy."},
{name:"Balin, Loremaster",c:["R"],r:"R",t:"good",a:["RW"],n:"Value dwarf that keeps the cards flowing."},
{name:"Desolation of Smaug",c:["R"],r:"R",t:"good",a:["ANY"],n:"Big red damage — a fine top-end finisher."},
{name:"Stone-Giant of High Pass",c:["R"],r:"R",t:"good",a:["ANY"],n:"Large body with upside; fine curve-topper."},
{name:"The Misty Mountains Cold",c:["R"],r:"R",t:"good",a:["RW"],n:"Saga value plus a storied piece."},
{name:"Desert Were-Worm",c:["R"],r:"R",t:"play",a:[],n:"Mono-red build-around; more fun than good."},
{name:"Getaway Barrel",c:["R"],r:"R",t:"trap",a:[],n:"A barrel of nothing. Skip."},
{name:"Last Light of Durin's Day",c:["R"],r:"R",t:"trap",a:[],n:"Too conditional to earn a slot."},
/* ---- GREEN RARES ---- */
{name:"Gigantic Big Bear",c:["G"],r:"R",t:"bomb",a:["BG","GU"],n:"It is a gigantic, big bear. It wins fights. All of them."},
{name:"Bejeweled Warg",c:["G"],r:"R",t:"great",a:["BG"],n:"Aggressive warg with treasure upside."},
{name:"Down in the Valley",c:["G"],r:"R",t:"great",a:["ANY"],n:"A saga that never gets cut — steady green value."},
{name:"Part in Friendship",c:["G"],r:"R",t:"great",a:["ANY"],n:"Premium green spell; worth splashing."},
{name:"Radagast of Rhosgobel",c:["G"],r:"R",t:"great",a:["GU"],n:"Value wizard that keeps the creatures coming."},
{name:"Cantankerous Keepers",c:["G"],r:"R",t:"good",a:["GU"],n:"Solid stats and steady value."},
{name:"The Notary Hobbits",c:["G"],r:"R",t:"play",a:[],n:"Cute, low impact."},
{name:"Through the Forest Gate",c:["G"],r:"R",t:"play",a:["GU"],n:"Fine ramp/value; not a priority."},
/* ---- MULTICOLOR RARES ---- */
{name:"Bard's Company",c:["W","U"],r:"R",t:"bomb",a:["WU"],n:"A supercharged signpost — the strongest pull into WU. Worth splashing."},
{name:"Smaug, Wicked Worm",c:["B","R"],r:"R",t:"bomb",a:["BR"],n:"Dragon bomb; ends games the turn after it lands."},
{name:"Chief Warg's Company",c:["B","G"],r:"R",t:"bomb",a:["BG"],n:"Bomb-level company; picks BG for you."},
{name:"Thranduil's Company",c:["G","U"],r:"R",t:"bomb",a:["GU"],n:"The elf-deck bomb; worth splashing."},
{name:"The Great Goblin",c:["B","R"],r:"R",t:"great",a:["BR"],n:"Excellent in a focused goblin deck built to abuse him."},
{name:"Tom, Bert, and William",c:["B","G"],r:"R",t:"great",a:["BG"],n:"Three trolls' worth of stats; worth splashing."},
{name:"Dáin's Company",c:["R","W"],r:"R",t:"great",a:["RW"],n:"Excellent dwarf company payoff."},
{name:"Dwalin, Weaponmaster",c:["R","W"],r:"R",t:"great",a:["RW"],n:"One of two hone-counter cards; great with any equipment."},
{name:"Bolg's Company",c:["B","R"],r:"R",t:"good",a:["BR"],n:"Repeatable amass value that keeps the sacrifice loop turning."},
{name:"Thranduil, the Elvenking",c:["G","U"],r:"R",t:"play",a:["GU"],n:"Fancier than it is effective — fine, not a priority."},
/* ---- ARTIFACT / LAND RARES ---- */
{name:"My Precious",c:["C"],r:"R",t:"great",a:["ANY"],n:"The Ring itself — powerful in any deck."},
{name:"The Lonely Mountain",c:["L"],r:"R",t:"great",a:["ANY"],n:"A rare land with real upside; free to play."},
{name:"Elven Passage",c:["L"],r:"R",t:"good",a:["GU"],n:"Fetches a land — two landfall triggers at once."},
{name:"Glamdring, Foe-hammer",c:["C"],r:"R",t:"play",a:["RW"],n:"Fine equipment; better with dwarves and Thorin."},
{name:"Sting, Bilbo's Sword",c:["C"],r:"R",t:"play",a:["RW"],n:"Hone-counter equipment; playable, not exciting."},
/* ---- UNCOMMONS ---- */
{name:"Celebrate the Mountain-king",c:["W"],r:"U",t:"great",a:["ANY"],n:"Four-mana Banishing Light plus the set mechanic — premium removal, worth splashing."},
{name:"Iron Hills Blacksmith",c:["W"],r:"U",t:"great",a:["RW","WU"],n:"Double-strike body that brings its own equipment to wear."},
{name:"Stone by Sunlight",c:["W"],r:"U",t:"great",a:["ANY"],n:"Valorous Stance reborn — flexible premium removal."},
{name:"The Mountain-king's Return",c:["W"],r:"U",t:"great",a:["WU","RW"],n:"Saga: loot a 3-drop back plus a 1/1 plus a counter, all for three mana."},
{name:"Bilbo, Luckwearer",c:["U"],r:"U",t:"great",a:["ANY"],n:"A looter that chips in unblockable damage — incredible in stalls, loots duplicate legends."},
{name:"Desolation Prowler",c:["B"],r:"U",t:"great",a:["BG"],n:"Putrid Leech energy: excellent rate, self-pumps to turn on ferocious."},
{name:"Dreaded Bat-Cloud",c:["B"],r:"U",t:"great",a:["ANY"],n:"Trade off a 2-drop into this and you're monstrously ahead."},
{name:"Gandalf, Spark Starter",c:["R"],r:"U",t:"great",a:["ANY"],n:"Flametongue Gandalf — enters, removes a creature or two, keeps a real body."},
{name:"Gathering of Darkness",c:["B"],r:"U",t:"good",a:["ANY"],n:"Gravedigger with better stats — grindy 2-for-1."},
{name:"Gnashing of Teeth",c:["B"],r:"U",t:"good",a:["ANY"],n:"Efficient removal that also sweeps 1/1 tokens."},
{name:"Burn, Burn, Tree and Fern",c:["R"],r:"U",t:"good",a:["ANY"],n:"Worth it for the six damage alone; the other chapters are gravy. Splashable."},
{name:"Misty Mountains Raider",c:["R"],r:"U",t:"good",a:["BR"],n:"'Whenever you attack' — immediate and continuous value on a fine body."},
{name:"Mirkwood Pathmaker",c:["G"],r:"U",t:"good",a:["GU"],n:"3/3 minimum for three, easily a 6/6+, and it only grows."},
{name:"Old Fat Spider",c:["G"],r:"U",t:"good",a:["BG","GU"],n:"Massive evasive-ish beast; opponents must 2-for-1 themselves to answer it."},
{name:"Troll Negotiations",c:["G"],r:"U",t:"good",a:["GU","BG"],n:"Fight plus a counter — cast it when they're tapped out (Chapter VI)."},
{name:"Bard the Bowman",c:["W","U"],r:"U",t:"good",a:["WU"],n:"WU signpost — pings when the cards flow."},
{name:"Bolg of the North",c:["B","R"],r:"U",t:"good",a:["BR"],n:"BR signpost — removal and Army growth on one card."},
{name:"The Chief Warg",c:["B","G"],r:"U",t:"good",a:["BG"],n:"BG signpost — one of the best uncommons if you trigger ferocious consistently."},
{name:"Thorin Oakenshield",c:["R","W"],r:"U",t:"good",a:["RW"],n:"RW signpost — attacks for three on turn two. Don't hold him back."},
{name:"Silvan Reveler",c:["G","U"],r:"U",t:"good",a:["GU"],n:"GU signpost — snowballing landfall value the longer the game goes."},
{name:"Eagle's Rescue",c:["W","U"],r:"U",t:"good",a:["WU"],n:"Hybrid trick with bonus value when discarded — great recruit fodder."},
{name:"Fearsome Goblin Pair",c:["B","R"],r:"U",t:"good",a:["BR"],n:"Hybrid amass workhorse."},
{name:"Large Bear",c:["B","G"],r:"U",t:"good",a:["BG","ANY"],n:"It is a large bear. Any Swamp/Forest deck is interested."},
{name:"Bifur, Melodic Rider",c:["R","W"],r:"U",t:"good",a:["RW"],n:"Hybrid dwarf payoff that powers the whole team up once storied."},
{name:"Thranduil, Sindarin Liege",c:["G","U"],r:"U",t:"good",a:["GU"],n:"Elf-density payoff — more elves, more resources, forever."},
{name:"Woodland Weavemaster",c:["G","U"],r:"U",t:"good",a:["GU"],n:"Needs a dedicated elf deck; absolutely amazing in one."},
{name:"Old Fat Spider Can't See Me",c:["U"],r:"U",t:"play",a:["WU"],n:"Saga 2-for-1, but the Divination arrives three turns late — worst of the saga cycle."},
{name:"Down, Down to Goblin-town",c:["B"],r:"U",t:"good",a:["BR"],n:"Black saga value — a 2-for-1 in the right spot."},
{name:"Mirkwood Nurturer",c:["G","U"],r:"C",t:"good",a:["GU"],n:"Hybrid: bounce a land for landfall or reset an enters-ability creature. Favorite of the hybrid cycle."},
{name:"Patient Instructor",c:["W","U"],r:"C",t:"good",a:["WU"],n:"Hybrid recruit engine — steady looting and Soldiers."},
{name:"Goblin Plate Mail",c:["B","R"],r:"C",t:"good",a:["BR","RW"],n:"Hybrid equipment; free-equips with certain dwarves. Fits two archetypes."},
{name:"Duskwatch Hunter",c:["B","G"],r:"C",t:"good",a:["BG"],n:"Hybrid: permanently buffs power — a repeatable ferocious enabler."},
{name:"Nori, Teller of Tales",c:["R","W"],r:"C",t:"good",a:["RW"],n:"Hybrid legendary dwarf — a story piece with a fine body."},
{name:"Snowslope Hunter",c:["R"],r:"U",t:"good",a:["BR"],n:"Churns through your deck; there's always a goblin lying around to feed it."},
{name:"Stir Up Trouble",c:["B"],r:"C",t:"good",a:["BR"],n:"Premier sacrifice outlet — cash in spent Armies and bodies; hits artifacts too."},
{name:"Lakeshore Apothecary",c:["U"],r:"U",t:"play",a:["WU"],n:"Draw-second payoff; fine, slightly underpowered — recruit is strong enough without it."},
{name:"Elven Raft-Steerer",c:["U"],r:"U",t:"play",a:["GU"],n:"Blue elf glue for the landfall deck."},
{name:"Gollum the Abandoned",c:["B"],r:"U",t:"good",a:["BR"],n:"Repeatable sacrifice value — keeps the Army loop turning."},
/* ---- COMMONS: WHITE ---- */
{name:"Dwarven Shortsword",c:["W"],r:"C",t:"good",a:["RW","ANY"],n:"3/4 that leaves an equipment behind when it dies — near-uncuttable, feeds storied."},
{name:"Magnificent End",c:["W"],r:"C",t:"good",a:["ANY"],n:"White's ONLY common removal; five damage catches almost everything. Take every copy."},
{name:"Ori, Keeper of Songs",c:["W"],r:"C",t:"good",a:["RW"],n:"Above-rate stats once the story is online — as early as turn four."},
{name:"Velvetwing Butterflies",c:["W"],r:"C",t:"good",a:["WU","RW"],n:"Common Adventure: evasion plus a tap-down trick."},
{name:"Dwarven Provisioner",c:["W"],r:"C",t:"good",a:["WU","RW"],n:"A 2-drop that scales — team buffs win stalled boards, and the threat alone deters blocks."},
{name:"Moment of Glory",c:["W"],r:"C",t:"play",a:["WU"],n:"Bonus value when discarded — good recruit fodder."},
{name:"Ravenhill Flock",c:["W"],r:"C",t:"play",a:["WU"],n:"Draw-second payoff for the recruit deck."},
/* ---- COMMONS: BLUE ---- */
{name:"Bilbo Baggins, Burglar",c:["U"],r:"C",t:"great",a:["ANY"],n:"THE best common in the set. Draws on entry, and Take a Glance smooths your whole early game. Play every copy."},
{name:"Enchanted River's Grasp",c:["U"],r:"C",t:"good",a:["ANY"],n:"Effectively a blue Murder (flicker/enchantment removal barely exist) — answers bombs and undoes amass counters."},
{name:"Plunder the Trollshaws",c:["U"],r:"C",t:"good",a:["WU","ANY"],n:"Draw now, draw more later — and perfect to pitch to recruit."},
{name:"Uneasy Partings",c:["U"],r:"C",t:"good",a:["ANY"],n:"Blue's go-to tempo removal; always better than it looks."},
{name:"Confusticate and Bebother",c:["U"],r:"C",t:"play",a:["WU"],n:"Instant-speed interaction for the draw-go plan."},
{name:"Gandalf, Wandering Wizard",c:["U"],r:"C",t:"play",a:["ANY"],n:"Blue's biggest creature and a late-game mana sink — double-activate at 12 mana (Chapter VI)."},
{name:"Lake-town Lookout",c:["U"],r:"C",t:"play",a:["WU","BR"],n:"Excellent fodder creature — pairs surprisingly well with Stir Up Trouble in Grixis piles."},
{name:"Elvenking's Harper",c:["U"],r:"C",t:"play",a:["GU"],n:"Unblockable chip damage — a genuine win condition in stalls."},
{name:"Long Lake Nuisance",c:["U"],r:"C",t:"play",a:["ANY"],n:"One of the few common fliers that actually hits hard — but fragile."},
{name:"Lake-town Toymaker",c:["U"],r:"C",t:"play",a:["WU"],n:"Draw-second payoff for the recruit engine."},
/* ---- COMMONS: BLACK ---- */
{name:"Bilbo's Deadly Slice",c:["B"],r:"C",t:"great",a:["ANY"],n:"The format's Murder. Double-black wants 10+ Swamps, but the answer-anything power is worth it. Take every copy."},
{name:"Rage into the Valley",c:["B"],r:"C",t:"good",a:["BR"],n:"Phyrexian Rager energy — a creature (or Army buff) that replaces itself."},
{name:"Stony-Voiced Goblins",c:["B"],r:"C",t:"good",a:["BR"],n:"Annoying value body with plenty of sacrifice synergy."},
{name:"Crude Bent Blade",c:["B"],r:"C",t:"good",a:["BG","BR"],n:"Edict plus equipment — removal early, ferocious enabler late."},
{name:"Reverent Howl",c:["B"],r:"C",t:"play",a:["BG"],n:"Pump that flips on ferocious mid-combat."},
{name:"Gollum, Silent Slinker",c:["B"],r:"C",t:"play",a:["BG"],n:"Common Adventure with 4+ power for ferocious."},
{name:"Goblin-town Flunkies",c:["B"],r:"C",t:"play",a:["BR"],n:"Amass fodder that overlaps both BR themes."},
/* ---- COMMONS: RED ---- */
{name:"Pinecone Strike",c:["R"],r:"C",t:"good",a:["ANY"],n:"Three damage at instant speed, exiles, and can snipe a Treasure. Red's best common — take every copy."},
{name:"Smaug, the Great Calamity",c:["R"],r:"C",t:"good",a:["ANY"],n:"Read it as: 5-mana removal that draws you a 5/5 flying dragon. Two copies is the sweet spot."},
{name:"Gundabad Opportunist",c:["R"],r:"C",t:"good",a:["BR","ANY"],n:"Value creature that replaces itself — fits any red deck."},
{name:"Óin the Brave",c:["R"],r:"C",t:"good",a:["RW"],n:"Efficient when storied, rummages in stalls. Skip in BR."},
{name:"Dori, Bearer of Friends",c:["R"],r:"C",t:"good",a:["RW","ANY"],n:"Treasure plus two story pieces in one card — and the format's best splash enabler."},
{name:"Bombur, Gentle Dreamer",c:["R"],r:"C",t:"play",a:["RW"],n:"Legendary dwarf glue for the storied count."},
/* ---- COMMONS: GREEN ---- */
{name:"Boughside Wanderers",c:["G"],r:"C",t:"good",a:["GU","BG"],n:"Green's defining common: digs four cards deep, often attacks as a 6/6, chains into itself. Run 1–2."},
{name:"Wood Elves",c:["G"],r:"C",t:"good",a:["GU"],n:"Ramp + elf + landfall trigger + sacrifice fodder. Green's engine-starter."},
{name:"Quarrel",c:["G"],r:"C",t:"good",a:["ANY"],n:"Green's lone common removal — cheap, instant, damage-free. Cast it when they can't respond."},
{name:"Attercop",c:["G"],r:"C",t:"good",a:["GU","BG"],n:"Deathtouch blocker that attacks with landfall; the +1/+1 dodges 1/1 token trades."},
{name:"Beorn, Reluctant Host",c:["G"],r:"C",t:"good",a:["GU","BG"],n:"Common Adventure: a 5-mana 5/5 trampler with its own ramp spell attached."},
{name:"Ordinary Bear",c:["G"],r:"C",t:"play",a:["BG"],n:"4+ base power — the honest ferocious enabler."},
{name:"Wilderland Scrounger",c:["G"],r:"C",t:"play",a:["BG"],n:"Huge ferocious body that dodges Magnificent End."},
{name:"Beorn's Hospitality",c:["G"],r:"C",t:"play",a:["BG","GU"],n:"Permanent power buff — a sticky ferocious enabler."},
{name:"Nasty Little Rabbit",c:["G"],r:"C",t:"play",a:["BG"],n:"Cheap ferocious payoff that rewards attacking."},
{name:"Mirkwood Meditator",c:["G"],r:"C",t:"trap",a:[],n:"Underwhelming 3-drop — the hybrid commons outclass it."},
{name:"Great Fierce Bee",c:["G"],r:"C",t:"trap",a:[],n:"Neither great nor fierce enough."},
/* ---- COLORLESS ---- */
{name:"Thrór's Map",c:["C"],r:"C",t:"good",a:["ANY"],n:"Play it in EVERY deck: two mana, replaces itself with a land, loots for free later."},
{name:"Troop of Ponies",c:["C"],r:"C",t:"good",a:["ANY"],n:"Cheap fixing — auto-include when splashing, and the block-then-sac trick is free value (Chapter VI)."},
{name:"Key to the Side-Door",c:["C"],r:"C",t:"play",a:["ANY"],n:"Unblockable enabler plus looting — a stall-breaker that recycles duplicate legends."},
{name:"Well-Worn Spatula",c:["C"],r:"C",t:"play",a:["RW","BG"],n:"Playable equipment with cheap creatures or equipment payoffs — and it feeds Thorin."},
{name:"Giant's Boulder",c:["C"],r:"C",t:"play",a:["ANY"],n:"Below rate; early smoother, late removal. Fixing of last resort."},
{name:"Old Thrush",c:["C"],r:"C",t:"play",a:["ANY"],n:"Below-rate 2-drop for decks short on early plays."},
{name:"Long-Bodied Grey Dog",c:["C"],r:"C",t:"play",a:["ANY"],n:"Below-rate 3-drop filler."},
/* ---- LANDS ---- */
{name:"Hobbit Hole",c:["L"],r:"C",t:"good",a:["ANY"],n:"Fixing plus 'halflingcycling' — grabs a Bilbo when you flood out. Double landfall trigger too."},
{name:"Lake-town",c:["L"],r:"C",t:"good",a:["WU"],n:"W/U dual with a late-game pump sink for Humans."},
{name:"Goblin-town",c:["L"],r:"C",t:"good",a:["BR"],n:"B/R dual with a Goblin pump sink."},
{name:"Mirkwood",c:["L"],r:"C",t:"good",a:["BG"],n:"B/G dual — its pump conveniently targets all manner of wildlife."},
{name:"Iron Hills",c:["L"],r:"C",t:"good",a:["RW"],n:"R/W dual with a Dwarf pump sink."},
{name:"Elvenking's Halls",c:["L"],r:"C",t:"good",a:["GU"],n:"G/U dual with an Elf pump sink."}
];
/* ================= LEDGER RENDER + FILTERS ================= */
var TIER_ORDER={bomb:0,great:1,good:2,play:3,trap:4};
var TIER_LABEL={bomb:"BOMB",great:"GREAT",good:"GOOD",play:"PLAYABLE",trap:"TRAP"};
var RAR_LABEL={M:"MYTHIC",R:"RARE",U:"UNCOMMON",C:"COMMON"};
var ARCH_LABEL={WU:"W/U Recruit",BR:"B/R Goblins",BG:"B/G Ferocious",RW:"R/W Dwarves",GU:"G/U Elves",ANY:"Any deck"};
var state={color:new Set(),rar:new Set(),tier:new Set(),arch:new Set(),q:""};
function pipHTML(cs){
return cs.map(function(c){return '<span class="pip '+c+'"></span>';}).join('');
}
function matches(card){
if(state.color.size){
var ok=false;
state.color.forEach(function(v){
if(v==="MULTI"){ if(card.c.length>1) ok=true; }
else if(card.c.indexOf(v)>-1) ok=true;
});
if(!ok) return false;
}
if(state.rar.size && !state.rar.has(card.r)) return false;
if(state.tier.size && !state.tier.has(card.t)) return false;
if(state.arch.size){
var ok2=false;
state.arch.forEach(function(v){ if(card.a.indexOf(v)>-1) ok2=true; });
if(!ok2) return false;
}
if(state.q){
var hay=(card.name+" "+card.n+" "+card.a.join(" ")).toLowerCase();
if(hay.indexOf(state.q)===-1) return false;
}
return true;
}
function render(){
var list=document.getElementById('ledgerList');
var rows=DB.filter(matches).sort(function(a,b){
var t=TIER_ORDER[a.t]-TIER_ORDER[b.t];
if(t!==0) return t;
return a.name.localeCompare(b.name);
});
document.getElementById('ledgerCount').textContent=rows.length+" of "+DB.length+" cards shown";
var active=state.color.size+state.rar.size+state.tier.size+state.arch.size+(state.q?1:0);
document.getElementById('filterSummary').textContent=
(active?active+" filter"+(active>1?"s":"")+" on · ":"")+rows.length+" cards";
if(!rows.length){
list.innerHTML='<div class="empty-ledger">Not even Gandalf can find a card matching all of that. Loosen a filter or two.</div>';
return;
}
list.innerHTML=rows.map(function(c){
var archs=c.a.filter(function(x){return ARCH_LABEL[x];}).map(function(x){return ARCH_LABEL[x];}).join(' · ');
return '<div class="lcard t-'+c.t+'">'
+'<div class="pips">'+pipHTML(c.c)+'</div>'
+'<div class="body"><div class="name">'+c.name+'</div>'
+'<div class="note">'+c.n+(archs?' <span class="arch-tag">'+archs+'</span>':'')+'</div></div>'
+'<div class="badges"><span class="badge b-'+c.r+'">'+RAR_LABEL[c.r]+'</span>'
+'<span class="badge b-'+c.t+'">'+TIER_LABEL[c.t]+'</span></div>'
+'</div>';
}).join('');
}
document.querySelectorAll('.fbtn').forEach(function(btn){
btn.addEventListener('click',function(){
var f=btn.dataset.f,v=btn.dataset.v;
var set=state[f==="color"?"color":f];
if(set.has(v)){set.delete(v);btn.classList.remove('on');}
else{set.add(v);btn.classList.add('on');}
render();
});
});
document.getElementById('ledgerSearch').addEventListener('input',function(e){
state.q=e.target.value.trim().toLowerCase();render();
});
document.getElementById('ledgerReset').addEventListener('click',function(){
state.color.clear();state.rar.clear();state.tier.clear();state.arch.clear();state.q="";
document.getElementById('ledgerSearch').value="";
document.querySelectorAll('.fbtn').forEach(function(b){b.classList.remove('on');});
render();
});
render();
/* ================= ARCHETYPE TABS ================= */
var tabs=Array.prototype.slice.call(document.querySelectorAll('.army-tabs [role="tab"]'));
var panels=Array.prototype.slice.call(document.querySelectorAll('.army-panel'));
tabs.forEach(function(t){
t.addEventListener('click',function(){
tabs.forEach(function(x){x.setAttribute('aria-selected','false');});
panels.forEach(function(p){p.classList.remove('active');});
t.setAttribute('aria-selected','true');
document.getElementById(t.getAttribute('aria-controls')).classList.add('active');
});
});
/* checklist */
document.querySelectorAll('.check input').forEach(function(cb){
cb.addEventListener('change',function(){cb.closest('li').classList.toggle('done',cb.checked);});
});
/* ================= GUIDE PAGE TABS ================= */
var navBtns=Array.prototype.slice.call(document.querySelectorAll('nav.wayfinder button'));
var pages=Array.prototype.slice.call(document.querySelectorAll('section.page'));
function showPage(id){
pages.forEach(function(p){p.classList.toggle('active',p.id===id);});
navBtns.forEach(function(b){
var on=b.dataset.page===id;
b.classList.toggle('on',on);
b.setAttribute('aria-selected',on?'true':'false');
if(on&&b.scrollIntoView)b.scrollIntoView({block:'nearest',inline:'center'});
});
window.scrollTo({top:0,behavior:'auto'});
}
navBtns.forEach(function(b){
b.addEventListener('click',function(){showPage(b.dataset.page);});
});
/* internal links inside pages (e.g. the Card Ledger link) switch tabs */
document.querySelectorAll('.inner a[href^="#"]').forEach(function(a){
a.addEventListener('click',function(e){
var id=a.getAttribute('href').slice(1);
if(document.querySelector('section.page#'+id)){e.preventDefault();showPage(id);}
});
});
/* ================= MOBILE FILTER COLLAPSE ================= */
var fToggle=document.getElementById('filterToggle');
var fPanel=document.querySelector('.ledger-controls');
fToggle.addEventListener('click',function(){
var open=fPanel.classList.toggle('open');
fToggle.setAttribute('aria-expanded',open?'true':'false');
});
/* auto-collapse after choosing filters on small screens so results are visible */
document.querySelectorAll('.fbtn').forEach(function(btn){
btn.addEventListener('click',function(){
if(window.matchMedia('(max-width:760px)').matches){
clearTimeout(window.__fclose);
window.__fclose=setTimeout(function(){
fPanel.classList.remove('open');
fToggle.setAttribute('aria-expanded','false');
},1400);
}
});
});
</script>
</body>
</html>
```
[REQUESTED CHANGES]
(no specific request — apply your best judgment)
--- HOW TO RESPOND (READ FIRST) ---
Before writing any code, follow this exact process:
1. **ANALYZE** the widget source code provided above and identify:
a. Which Vibes SDK features it already uses (vibes.save, vibes.load, vibes.shared.join, etc.)
b. Which SDK features would genuinely benefit THIS specific widget — tailored to what it does, not a dump of everything available.
2. **PRESENT A NUMBERED LIST** covering:
- SDK features currently active in this widget
- New SDK features that would concretely improve this widget (be specific: why this widget, what it enables)
3. **WAIT** — do not write any code yet. Reply with your analysis and numbered list, then stop and ask the user which numbered items they want.
4. **IMPLEMENT ONLY** the items the user confirms, plus any explicit change they requested. Do not add unrequested features.
**IMPORTANT — Shared state room names:**
If you add vibes.shared.join(), do NOT use a hardcoded string literal as the room name (e.g. vibes.shared.join("lobby")) unless the user explicitly wants ALL viewers to share one single global state. A hardcoded room name means every person who visits this widget reads and writes the same shared state — it is a global room. For per-user or per-session isolation, derive the room name from a variable (e.g. a user ID, session token, or random value). When in doubt, use vibes.save/vibes.load for per-user persistence instead.
--- VIBES SDK CONTEXT ---
## Vibes SDK Reference
You are building an HTML widget for It Just Vibes (itjustvibes.com). The Vibes SDK is auto-injected — do NOT add a script tag. Just use `window.vibes` (or just `vibes`).
### Setup
Wrap your startup code in `vibes.onReady`:
```js
vibes.onReady(async () => {
const saved = await vibes.load("myKey");
// your widget logic here
});
```
### State (Per-User Persistence)
Every user gets their own isolated state per widget. All methods return Promises.
| Method | Description |
|--------|-------------|
| `await vibes.save(key, value)` | Save JSON-serializable data |
| `await vibes.load(key)` | Load saved data (returns `null` if not found) |
| `await vibes.delete(key)` | Delete a saved key |
| `await vibes.listKeys()` | Get array of all saved key names |
**Key rules:**
- Keys are strings, max 64 characters, alphanumeric + dashes/underscores
- Values must be JSON-serializable (objects, arrays, strings, numbers, booleans)
- Max 100KB per value, 500KB per widget per user, 5MB per user total
- Max 100 keys per widget per user
### Fetch Proxy
Use direct `fetch()` for APIs with permissive CORS headers (`Access-Control-Allow-Origin: *`). Use `vibes.fetch` for APIs without CORS headers (the proxy handles cross-origin requests):
```js
const resp = await vibes.fetch("https://api.example.com/data", {
method: "GET", // GET, POST, PUT, DELETE
headers: {}, // optional headers
body: null, // optional body (string)
timeout: null // optional timeout in ms
});
const data = await resp.json(); // or resp.text()
console.log(resp.status, resp.ok);
```
### API Keys (never put a key in your code)
The widget owner stores keys in **Manage → Secrets**. Never hard-code an API key — anyone can read widget source.
**Server keys** (OpenAI, Stripe secret, etc.): pass the secret's name as `useSecret`. The proxy adds the key to the request; your code never sees it. The owner must also add the API's domain under Allowed Domains.
```js
const resp = await vibes.fetch("https://api.openai.com/v1/models", { useSecret: "OPENAI_KEY" });
```
**Browser keys** (keys built to be public, e.g. a Google Maps JavaScript API key): some libraries need the key in the page. Read it at runtime — it resolves `null` if the owner hasn't set it, so always handle that case:
```js
vibes.onReady(async () => {
const key = typeof vibes.browserKey === "function" ? await vibes.browserKey("GOOGLE_MAPS_BROWSER_KEY") : null;
if (!key) { showSetupMessage(); return; } // e.g. "Owner: add a Browser secret in Manage → Secrets"
loadGoogleMaps(key);
});
```
For website-restricted keys (Google Maps), the owner restricts the key to `https://run.itjustvibes.com/*` and turns on **Manage → Settings → Send origin as referrer**. Browser keys are visible to every viewer; never use `browserKey` for a server key. Forks don't get the owner's keys.
### Multiplayer (Shared State)
Real-time shared state across all users viewing the same widget.
```js
// Join a room (call once at startup)
await vibes.shared.join("lobby", { persistent: true });
// Set shared state (broadcasts to all users)
await vibes.shared.set("score", { player1: 10, player2: 7 });
// Read shared state (synchronous, returns last known value)
const score = vibes.shared.get("score");
// Listen for changes to a specific key
vibes.shared.onChange("score", (newValue) => {
console.log("Score updated:", newValue);
});
// Listen for any shared state change
vibes.shared.onAny((key, value) => {
console.log(key, "changed to", value);
});
// Get number of connected users
const count = await vibes.shared.getUserCount();
// Leave room
vibes.shared.leave();
// Clear all shared state for this room
await vibes.shared.clear();
```
**Shared state options:**
- `{ persistent: true }` — state survives page reloads (stored server-side)
- Default room name is "__default__" if omitted
### Agent-Accessible State (vibes.ai.*)
State written with the standard `vibes.save` / `vibes.load` methods is private to each user and is **NOT readable by AI agents**. To share state with an AI agent (via the MCP connector), use the `vibes.ai` sub-namespace:
| Method | Description |
|--------|-------------|
| `await vibes.ai.setState(key, value)` | Write agent-readable state. Key is stored internally as `ai/<key>`. |
| `await vibes.ai.getState(key)` | Read agent-readable state. Returns `null` if key absent. |
| `await vibes.ai.listKeys()` | List all agent-readable keys (without the `ai/` prefix). |
**Important rules:**
- Regular `vibes.save()` / `vibes.load()` is **NOT agent-accessible** — use `vibes.ai.*` for state you want agents to read.
- The widget **owner** must enable agent access in **Manage → Agent tab** before any agent can read or write `vibes.ai.*` state.
- Keys are auto-prefixed to `ai/` internally; you supply just the short key (e.g. `'context'`).
```js
vibes.onReady(async () => {
// Write state an AI agent can later read
await vibes.ai.setState('context', { currentLevel: 3, score: 1500 });
// Read it back (same auto-prefix applies)
const ctx = await vibes.ai.getState('context');
// List all agent-accessible keys for this widget
const keys = await vibes.ai.listKeys(); // e.g. ['context']
});
```
### Rules
1. **Do NOT use localStorage, sessionStorage, or window.storage** — they are blocked or undefined in the sandbox. Use `vibes.save`/`vibes.load` instead.
2. **Do NOT add a script tag to import the SDK** — it is auto-injected.
3. **Wrap startup code in `vibes.onReady()`** — the SDK may not be ready immediately.
4. **Await all SDK calls** — every method (except `vibes.shared.get`) returns a Promise.
5. **External JS libraries are allowed and encouraged** — load them via a `<script src>` tag from a reputable CDN (jsDelivr, unpkg, or cdnjs) with a pinned version, or inline the library source. The only exception: do NOT add a script tag for the Vibes SDK itself — it is auto-injected (see Rule 2).
6. **Keep total code under 100KB** — that is the default widget size limit (your account limit may be higher).
### Rate Limits
| Operation | Limit |
|-----------|-------|
| Writes (save + delete combined) | 30/min |
| Reads (load) | 60/min |
| List keys | 30/min |
| Fetch proxy | Rate limited per widget |
### Error Handling
All SDK methods can reject. Wrap in try/catch:
```js
try {
await vibes.save("key", value);
} catch (err) {
console.error("Save failed:", err.message);
}
```
Fetch proxy errors include `err.code`: `"RATE_LIMITED"`, `"BLOCKED"`, `"FETCH_ERROR"`, and `"SECRET_NOT_FOUND"` (unknown or paused `useSecret` name). `vibes.browserKey` rejects only with `"RATE_LIMITED"` or `"FETCH_ERROR"`.
### Data Export
Export rows of data as CSV or Excel directly from your widget.
```js
// Register dataset for the platform's "Export data" button
// AND optionally trigger an immediate download
vibes.exportData(rows, { filename: 'results.csv' })
// rows: Array of arrays (each inner array is one row; first row = headers)
// options.filename: sets the download filename and format (csv or xlsx)
// options.directDownload: false to only register without downloading (default: true)
```
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `filename` | string | `'data.csv'` | Download filename; extension determines format (`.csv` or `.xlsx`) |
| `directDownload` | boolean | `true` | Trigger immediate browser download in addition to registering the dataset |
**Notes:**
- First call registers the dataset so the widget chrome shows an "Export data" button
- Use `.csv` extension for CSV, `.xlsx` for Excel
- CSV injection safety is automatic (formula-starting cells prefixed with `'`)
- Data stays in the browser — no server round-trip
--- FORK & RESUBMIT INSTRUCTION ---
Return the complete, self-contained HTML file with all changes applied.
It should be ready to paste into itjustvibes.com/submit to create a new fork.
Include this comment at the top of the output:
/* Forked from: https://itjustvibes.com/Owner/an-unexpected-guide-the-hobbit-prerelease-strategy */