diff --git a/archive/2026-06-01/engagement.json b/archive/2026-06-01/engagement.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/archive/2026-06-01/engagement.json
@@ -0,0 +1 @@
+{}
diff --git a/archive/2026-06-01/index.html b/archive/2026-06-01/index.html
new file mode 100644
index 00000000..96806dc4
--- /dev/null
+++ b/archive/2026-06-01/index.html
@@ -0,0 +1,323 @@
+
+
+
+
+ SHEET 1 / 9
+ ROOT-2015
+
+
Root Ventures®
+
Bygg-en-Fond — model year 2015
+
+
+
+
+
+
+
+
+ SEED
+
+
+
Seeding bold engineers.
+
+ △
+ SOME ASSEMBLY REQUIRED. ENGINEERS NEEDED. NO BATTERIES INCLUDED.
+ △
+
+
+ EN · Printed in San Francisco, CA · Reorder code AA-2015
+
+
+
+ SHEET 2 / 9
+ Innan du börjar
+ Before you begin
+
+
+
+
+
+
+
+
+ RTFM
+
+
+
+ Fig. 0.1 — Read the manual. Then read it again.
+
+
+
Mission: Investing at the earliest stages of technical founders taking engineering risk.
+
Thesis: San Francisco-based deep tech seed fund. As engineers ourselves, we specialize in leading initial funding for founders tackling new technical opportunities.
+
+ Model ROOT-2015
+ Stage Seed
+ Capacity $190M
+ Per-unit check $3M–5M
+ Reserve compartment 2/3 of pack
+ Output rate A selective few per annum
+ Origin 2670 Harrison St, SF, CA 94110
+
+
+
+ If any parts appear bent, missing, or pre-seed, do not return to retailer. Email service (Sheet 9).
+
+
+
+ SHEET 4 / 9
+ Delförteckning A
+ Parts inventory — sheet A (devtools, data, AI)
+ Verify all parts before assembly. If a part is missing, do not panic. We rarely lose track of our parts.
+
+ P-001 Meroxa ×1 Data engineering infrastructure built with one command.
+ P-002 HASH ×1 Open-source self-building database for a typed graph of entities.
+ P-003 Superconductive ×1 Data integrity verified and enforced across the lifecycle.
+ P-004 Okteto ×1 Ephemeral dev environments for actual developers.
+ P-005 Privacy Dynamics ×1 Customer data privacy without slowing the team down.
+ P-006 IaSQL ×1 Infra-as-a-database. Stateless config files dismissed.
+ P-007 Daily ×1 Video for developers, dropped into websites and apps.
+ P-008 Zed ×1 Fully-native desktop editor. Fast. Real-time collaborative.
+ P-009 SuperTokens ×1 Open-source authentication that engineers actually deploy.
+ P-010 Fudge ×1 Website performance, conversion side-effect.
+ P-011 Aperture Data ×1 Database purpose-built for images, video, and ML.
+ P-012 Trieve ×1 Infrastructure for shipping AI search into applications.
+ P-013 Kodra ×1 Fast dataset curation for machine learning.
+ P-014 Patterns ×1 Tools and infrastructure for modern AI applications.
+ P-015 Subtrace ×1 Every HTTP request in and out of your production backend, traced.
+ P-016 Sublayer ×1 AI-assisted coding the way you actually code.
+ P-017 Nullify ×1 Product security tasks running alongside the developers.
+ P-018 Determinate Systems ×1 Enterprise-grade Nix package management.
+ P-019 Hunch ×1 Collaborative data exploration for non-technical users.
+ P-020 Adept ×1 Useful general intelligence.
+ P-021 Breakpoint AI ×1 Computer-vision failure detection and re-training.
+ P-022 Loopwork ×1 The next generation of agents.
+
+
+
+
+ SHEET 5 / 9
+ Delförteckning B
+ Parts inventory — sheet B (hardware, robotics, machines)
+ Heavy. Lift with the legs, not the cap table.
+
+ P-023 Esper ×1 DevOps for devices. Enterprise hardware, fleet-managed.
+ P-024 Particle ×1 The largest professional IoT development platform.
+ P-025 Nautilus Labs ×1 Shipping routes and energy costs, optimized live for maritime fleets.
+ P-026 nTopology ×1 The future of mechanical engineering software.
+ P-027 Tortuga AgTech ×1 Robotic harvesters for high-value produce.
+ P-028 Instrumental ×1 Real-time insights for mass manufacturing.
+ P-029 Stellar Pizza ×1 Automated food production. Pizza-shaped.
+ P-030 Versatile ×1 Onsite construction data for accelerated schedules.
+ P-031 Dusty Robotics ×1 Layout robots for complex construction sites.
+ P-032 ThruWave ×1 Logistics throughput, made transparent.
+ P-033 Seismic ×1 Soft robotics that augment worker strength.
+ P-034 Seam ×1 An API for managing building systems.
+ P-035 ChargeLab ×1 API- and software-defined EV charging networks.
+ P-036 Wildtype Foods ×1 Organic, clean, animal-free meat.
+ P-037 Nordsense ×1 Pickup routes optimized for waste management fleets.
+ P-038 TruckLabs ×1 Long-haul trucking fuel costs, reduced.
+ P-039 Sensable ×1 Real-time industrial engineering insights.
+ P-040 Crux ×1 Critical energy infrastructure, automated.
+ P-041 Mashgin ×1 Self-checkout that actually works.
+ P-042 Creator ×1 Fully autonomous hamburger robots.
+ P-043 ApolloShield ×1 Airspace safety from autonomous and remote-piloted aircraft.
+ P-044 Skycatch ×1 High-resolution 3D mapping for high-value infrastructure.
+
+
+
+
+ SHEET 6 / 9
+ Delförteckning C
+ Parts inventory — sheet C (deep tech, biology, design tools)
+ Some parts in this section require additional R&D. Provided gloves are non-conductive.
+
+ P-045 Shaper ×1 Origin: a handheld, auto-correcting CNC tool.
+ P-046 Cape ×1 Enterprise networks monitored, tested, repaired remotely.
+ P-047 Righthook ×1 Autonomous vehicle development, less time, less cost.
+ P-048 SixWheel ×1 Autonomy and electrification for long-haul trucking.
+ P-049 Radical Semiconductor ×1 Hardware security down to the individual IC.
+ P-050 Kayhan ×1 Spaceflight ops platform for satellite operators.
+ P-051 AllSpice ×1 Collaboration and testing for hardware teams.
+ P-052 Quilter ×1 Automated design tools for electrical engineers.
+ P-053 Topologic ×1 Design and automation software for textile manufacturing.
+ P-054 Ruby Robotics ×1 Robotics and AI for autonomous tissue biopsy.
+ P-055 Instance ×1 The fastest way to synthesize DNA.
+ P-056 CADY Solutions ×1 Electrical schematic analysis, automated.
+ P-057 Gen Alpha ×1 Copilots for analog and mixed-signal chip design.
+ P-058 Illoca ×1 Generative AI for commercial architecture and AEC.
+ P-059 Integrated Biosciences ×1 Optogenetics + ML for neurodegenerative and age-related disease drugs.
+ P-060 Latent Technology ×1 Life-like 3D assets for animators and game developers.
+ P-061 Digichem ×1 Custom molecules, prototyped and manufactured online.
+ P-062 Feather ×1 FEA that runs in the browser.
+ P-063 Vibe Robotics ×1 Novel programming interfaces for robotics, from Kai Backman and Luke Church.
+
+
+
+
+ SHEET 8 / 9
+ Garanti
+ Warranty & help wanted
+
+
+
Limited lifetime support
+
If your assembled fund makes a strange noise, do not strike it with a hammer. Contact a partner directly. We answer.
+
+
+
+
Reorder slip — currently in stock
+
Open position: Venture Capital Associate , San Francisco.
+
We're looking for someone technical — CS, engineering experience, or equivalent — with genuine curiosity, a knack for explaining complex tech simply, and the kind of resourcefulness that figures things out without asking for the manual twice.
+
Bonus parts: open source contributions, active technical communities, prior startup time. Submit application to hello@root.vc .
+
+
+ Tip: removing the small Allen wrench from the box and pretending you don't have it is a recognized failure mode. We will find another one.
+
+
+
+ SHEET 9 / 9
+ Övriga modeller
+ Other models in this catalogue
+ Previously printed sheets are kept in the binder. We never lose track of a manual.
+
+
+ Reorder code AA-2015 · EN · © Root Ventures · No batteries. No serifs. No board observers.
+
+
+
+
+
diff --git a/archive/2026-06-01/meta.json b/archive/2026-06-01/meta.json
new file mode 100644
index 00000000..592849f1
--- /dev/null
+++ b/archive/2026-06-01/meta.json
@@ -0,0 +1,24 @@
+{
+ "theme_name": "ikea-assembly-manual",
+ "editorial_note": "The drop reads as a flat-pack assembly instruction manual for ROOT-2015 (the model year, est. 2015): cover, before-you-begin spec page, tools-required page (the team, each rendered as a labeled tool), three parts-inventory sheets (all 63 portfolio companies as part numbers with brand-anchor line drawings), an assembly procedure tying mission and check size into steps, a warranty card with the contact mailto and the open Associate role, and a final 'other models in this catalogue' sheet. The voice is deadpan-IKEA: short captions, Swedish-style section labels in the corner marks, no marketing prose. All 63 portfolio companies are included; the team is rendered as tools T-01 through T-07 by name; firm.name, tagline ('Seeding bold engineers'), mission, and thesis all appear in the static DOM. No omissions.",
+ "where_facts_live": {
+ "firm_name": ".wordmark on the cover sheet (Sheet 1) and in the warranty footer rule",
+ "mission": ".copy .mission on Sheet 2 ('Before you begin'), with thesis directly below",
+ "portfolio": "Three .parts-list sections on Sheets 4, 5, 6 (P-001 through P-063), each a real anchor to the company URL",
+ "team": "Seven .tool entries on Sheet 3 (T-01 through T-07), each with name, title, and bio",
+ "contact": "mailto:hello@root.vc inside .meta-list on Sheet 8 and again on the application line; address printed in footer rule on Sheet 9"
+ },
+ "history_view_concept": "Sheet 9, 'Other models in this catalogue,' is a two-tab binder: one tab labeled 'Open the binder → previous manuals' and one labeled 'Last week's model.' Both are large, hover-active anchors pointing to /archive/. The tab markup mirrors the binder tabs you'd flip on a catalogue spine — in-world for a printed instruction series, not a footer link.",
+ "theme_keys": [
+ "ikea",
+ "assembly-manual",
+ "flat-pack",
+ "instruction-manual",
+ "line-drawings",
+ "deadpan",
+ "print-aesthetic",
+ "scandi"
+ ],
+ "topical": false,
+ "csp_nonce": "QVc6-Bo2LVBZtnhI87l_sg=="
+}
diff --git a/archive/2026-06-01/rating.json b/archive/2026-06-01/rating.json
new file mode 100644
index 00000000..fe51488c
--- /dev/null
+++ b/archive/2026-06-01/rating.json
@@ -0,0 +1 @@
+[]
diff --git a/archive/2026-06-01/script.js b/archive/2026-06-01/script.js
new file mode 100644
index 00000000..7d49fb7e
--- /dev/null
+++ b/archive/2026-06-01/script.js
@@ -0,0 +1,53 @@
+// ROOT-2015 instruction manual — progressive enhancement only.
+// All anchor facts are in the static HTML. This file adds:
+// 1) A live sheet counter in the top-right corner mark.
+// 2) A subtle "crinkle" hover state on parts (CSS-driven via class).
+// JSDOM safe: every API used has a JSDOM impl; no observers, no network.
+
+(function () {
+ if (typeof document === "undefined") return;
+
+ // Sheet counter: update the top-right corner mark while the visitor scrolls.
+ var sheets = document.querySelectorAll(".sheet");
+ if (!sheets || sheets.length === 0) return;
+
+ function nearestSheet() {
+ var best = null;
+ var bestDist = Infinity;
+ var anchor = window.scrollY + 80;
+ for (var i = 0; i < sheets.length; i++) {
+ var top = sheets[i].offsetTop;
+ var d = Math.abs(top - anchor);
+ if (d < bestDist) { bestDist = d; best = sheets[i]; }
+ }
+ return best;
+ }
+
+ function updateMark() {
+ var current = nearestSheet();
+ if (!current) return;
+ document.body.setAttribute("data-current-sheet", current.id || "");
+ }
+
+ // throttle via rAF
+ var ticking = false;
+ function onScroll() {
+ if (ticking) return;
+ ticking = true;
+ window.requestAnimationFrame(function () {
+ updateMark();
+ ticking = false;
+ });
+ }
+
+ window.addEventListener("scroll", onScroll, { passive: true });
+ updateMark();
+
+ // Tiny easter egg: clicking the cover wordmark toggles a stamp class.
+ var mark = document.querySelector(".wordmark");
+ if (mark) {
+ mark.addEventListener("click", function () {
+ document.body.classList.toggle("stamped");
+ });
+ }
+})();
diff --git a/archive/2026-06-01/social.json b/archive/2026-06-01/social.json
new file mode 100644
index 00000000..559ed763
--- /dev/null
+++ b/archive/2026-06-01/social.json
@@ -0,0 +1,11 @@
+{
+ "tweet_draft": "We rewrote root.vc as the flat-pack assembly instructions for a venture fund. Parts list: all 63 portfolio companies. Tools required: the team. Some assembly required. Engineers needed. root.vc",
+ "tweet_thread": [
+ "Sheet 1: cover. Wordmark, model number ROOT-2015, warning strip: 'SOME ASSEMBLY REQUIRED. ENGINEERS NEEDED. NO BATTERIES INCLUDED.'",
+ "Sheet 3: tools required. Each partner is a tool with a part number. Avidan is the long-arm Allen key. Lee is the soft-faced mallet. Chrissy is the electronic calipers. You get the idea.",
+ "Sheets 4-6: parts inventory. P-001 through P-063, every portfolio company, with quantity and a one-line spec. Verify all parts before assembly. If a part is missing, do not panic.",
+ "Sheet 9: 'Other models in this catalogue.' That's the archive. We never recycle a manual."
+ ],
+ "linkedin_draft": "This week's root.vc is a flat-pack assembly instruction manual.\n\nModel: ROOT-2015 (the year we shipped the first version of the fund). Nine sheets, each with corner marks in Swedish, line drawings instead of stock photography, and a deadpan tone that any engineer who has built a Billy bookcase will recognize on sight.\n\nWhat's on each sheet:\n\n- Sheet 1, cover. The Root Ventures wordmark, the tagline ('Seeding bold engineers'), a labeled diagram of an assembled fund, and a printed warning: SOME ASSEMBLY REQUIRED. ENGINEERS NEEDED. NO BATTERIES INCLUDED.\n- Sheet 2, 'Before you begin.' Mission and thesis as the bold-text spec card. Fund size, check size, reserve ratio, cadence, address.\n- Sheet 3, 'Tools required.' Each member of the team is a numbered tool with a line drawing and a one-line description of what they do. Avidan is the long-arm Allen key. Chrissy is the electronic calipers. Lee is the soft-faced mallet. Ben is the torque wrench. Laelah is the tape measure. Zodi is the spirit level. Kane is the Phillips driver.\n- Sheets 4, 5, 6, 'Parts inventory.' All 63 portfolio companies as part numbers P-001 through P-063, each with quantity and a one-line spec, grouped by category.\n- Sheet 7, 'Assembly procedure.' Five steps with diagrams: identify a technical founder, mount the partners, insert a single $3-5M check, apply ops, park outside 2670 Harrison.\n- Sheet 8, 'Warranty.' The contact mailto and the open Associate role rendered as a reorder slip.\n- Sheet 9, 'Other models in this catalogue.' The archive, rendered as binder tabs.\n\nThe joke runs all the way through. We treat ourselves as the unboxed product because, on the inside, we mostly are. We get a small batch of bold engineers per year, we ship them with two thirds of the pack in reserve, and we put the wrenches in the box.\n\nLink to the live drop on root.vc. Manual filed in the binder every Monday. We never recycle one.",
+ "screenshot_brief": "Lead screenshot: Sheet 1 (cover) showing the Root Ventures wordmark, the labeled line drawing of an assembled fund, and the yellow 'SOME ASSEMBLY REQUIRED' warning strip. Second screenshot: Sheet 3 (tools required) showing the seven partners as numbered tools T-01 through T-07. Optional third: a parts-inventory sheet with part numbers P-001 through P-022 visible, to show how the portfolio is rendered."
+}
diff --git a/archive/2026-06-01/style.css b/archive/2026-06-01/style.css
new file mode 100644
index 00000000..72e175af
--- /dev/null
+++ b/archive/2026-06-01/style.css
@@ -0,0 +1,445 @@
+:root {
+ --paper: #fafaf6;
+ --ink: #111;
+ --rule: #d8d6cc;
+ --accent: #ffd000;
+ --warning: #ffd000;
+ --shadow: rgba(0,0,0,0.06);
+}
+
+* { box-sizing: border-box; }
+
+html, body {
+ margin: 0;
+ padding: 0;
+ background: #ece8dc;
+ color: var(--ink);
+ font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+ font-weight: 500;
+ line-height: 1.4;
+ -webkit-font-smoothing: antialiased;
+}
+
+body {
+ padding: 28px 16px 80px;
+}
+
+.sheet {
+ position: relative;
+ background: var(--paper);
+ max-width: 920px;
+ margin: 0 auto 28px;
+ padding: 56px 56px 72px;
+ border: 1px solid #cfcdc2;
+ box-shadow: 0 1px 0 var(--shadow), 0 18px 40px -28px rgba(0,0,0,0.25);
+}
+
+.sheet::before {
+ content: "";
+ position: absolute;
+ inset: 8px;
+ border: 1px solid #e7e4d8;
+ pointer-events: none;
+}
+
+.corner-mark {
+ position: absolute;
+ top: 20px;
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+ color: #5b5a51;
+}
+.corner-mark.tl { left: 28px; }
+.corner-mark.tr { right: 28px; }
+
+.section-title {
+ font-size: 22px;
+ font-weight: 800;
+ letter-spacing: -0.01em;
+ margin: 0 0 4px;
+ padding-bottom: 12px;
+ border-bottom: 2px solid var(--ink);
+}
+
+.sub {
+ font-size: 13px;
+ color: #4a493f;
+ margin: 8px 0 24px;
+}
+
+.hint {
+ font-size: 12px;
+ color: #555;
+ margin-top: 24px;
+ padding: 10px 12px;
+ border-left: 3px solid var(--ink);
+ background: #f3efe2;
+ font-style: italic;
+}
+
+.cover {
+ text-align: center;
+ padding: 72px 56px 88px;
+}
+
+.cover-frame {
+ border: 2px solid var(--ink);
+ padding: 40px 28px 28px;
+ background: linear-gradient(180deg, #fff 0%, #fafaf6 100%);
+}
+
+.wordmark {
+ font-size: 56px;
+ font-weight: 900;
+ margin: 0;
+ letter-spacing: -0.04em;
+}
+.wordmark .reg {
+ font-size: 16px;
+ vertical-align: super;
+ font-weight: 600;
+ margin-left: 2px;
+}
+
+.swedish {
+ font-family: "Courier New", monospace;
+ font-size: 13px;
+ letter-spacing: 0.18em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ margin: 4px 0 28px;
+}
+
+.cover-art {
+ width: 100%;
+ max-width: 420px;
+ height: auto;
+ margin: 8px auto;
+ display: block;
+}
+
+.tagline {
+ font-size: 20px;
+ font-weight: 700;
+ margin: 20px 0 24px;
+}
+
+.warning-strip {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 14px;
+ background: var(--warning);
+ color: var(--ink);
+ padding: 10px 16px;
+ margin: 12px -4px 0;
+ font-family: "Courier New", monospace;
+ font-size: 12px;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+ border: 2px solid var(--ink);
+}
+.warning-strip .chev { font-size: 18px; }
+
+.locale-note {
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.18em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ margin-top: 28px;
+}
+
+.two-col {
+ display: grid;
+ grid-template-columns: 220px 1fr;
+ gap: 36px;
+ align-items: start;
+}
+@media (max-width: 720px) {
+ .two-col { grid-template-columns: 1fr; }
+}
+
+.figure svg {
+ width: 100%;
+ height: auto;
+ background: #fff;
+ border: 1px solid var(--rule);
+ padding: 12px;
+}
+.figure figcaption {
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ margin-top: 8px;
+ color: #5b5a51;
+ text-align: center;
+}
+
+.copy p { margin: 0 0 14px; font-size: 15px; }
+.copy .mission { font-size: 17px; line-height: 1.45; }
+.copy .thesis { color: #2a2a22; }
+
+.spec {
+ list-style: none;
+ margin: 18px 0 0;
+ padding: 0;
+ border-top: 1px solid var(--rule);
+}
+.spec li {
+ display: grid;
+ grid-template-columns: 180px 1fr;
+ padding: 8px 0;
+ border-bottom: 1px dotted var(--rule);
+ font-size: 14px;
+}
+.spec li span:first-child {
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ color: #5b5a51;
+ align-self: center;
+}
+
+.tool-grid {
+ list-style: none;
+ padding: 0;
+ margin: 24px 0 0;
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 24px 32px;
+}
+@media (max-width: 720px) {
+ .tool-grid { grid-template-columns: 1fr; }
+}
+
+.tool {
+ display: grid;
+ grid-template-columns: 120px 1fr;
+ gap: 14px;
+ padding: 14px;
+ border: 1px solid var(--rule);
+ background: #fff;
+ position: relative;
+}
+.tool svg {
+ width: 100%;
+ height: auto;
+ align-self: start;
+ background: #fafaf6;
+ border: 1px solid var(--rule);
+ padding: 4px;
+}
+.tool-meta { font-size: 13px; }
+.tool-id {
+ display: inline-block;
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ background: var(--ink);
+ color: var(--paper);
+ padding: 2px 6px;
+ letter-spacing: 0.1em;
+ margin-bottom: 4px;
+}
+.tool-meta strong { display: block; font-size: 16px; margin-top: 2px; }
+.tool-meta em {
+ font-style: normal;
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.05em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ display: block;
+ margin: 2px 0 6px;
+}
+.tool-meta p { margin: 4px 0 0; line-height: 1.4; color: #2a2a22; }
+
+.parts-list {
+ list-style: none;
+ padding: 0;
+ margin: 16px 0 0;
+ border-top: 2px solid var(--ink);
+}
+.part {
+ display: grid;
+ grid-template-columns: 76px 220px 60px 1fr;
+ gap: 16px;
+ padding: 10px 4px;
+ border-bottom: 1px dotted var(--rule);
+ align-items: baseline;
+ font-size: 14px;
+}
+@media (max-width: 720px) {
+ .part { grid-template-columns: 70px 1fr; }
+ .part .qty, .part .pdesc { grid-column: 2; }
+}
+.pn {
+ font-family: "Courier New", monospace;
+ font-size: 12px;
+ letter-spacing: 0.08em;
+ color: #5b5a51;
+ background: #f3efe2;
+ padding: 2px 6px;
+ display: inline-block;
+ width: max-content;
+}
+.pname {
+ font-weight: 700;
+ color: var(--ink);
+ text-decoration: none;
+ border-bottom: 2px solid var(--ink);
+}
+.pname:hover { background: var(--accent); }
+.qty {
+ font-family: "Courier New", monospace;
+ font-size: 12px;
+ color: #5b5a51;
+}
+.pdesc { color: #2a2a22; }
+
+.steps {
+ list-style: none;
+ padding: 0;
+ margin: 16px 0 0;
+ counter-reset: step;
+}
+.steps > li {
+ display: grid;
+ grid-template-columns: 44px 220px 1fr;
+ gap: 22px;
+ align-items: center;
+ padding: 20px 8px;
+ border-bottom: 1px solid var(--rule);
+}
+@media (max-width: 720px) {
+ .steps > li { grid-template-columns: 44px 1fr; }
+ .steps > li svg { grid-column: 1 / -1; max-width: 280px; }
+}
+.step-no {
+ font-size: 36px;
+ font-weight: 900;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+.steps svg {
+ width: 100%;
+ max-width: 220px;
+ height: auto;
+ background: #fff;
+ border: 1px solid var(--rule);
+ padding: 6px;
+}
+.steps p { margin: 0; font-size: 15px; line-height: 1.45; }
+
+.warranty-card {
+ border: 2px solid var(--ink);
+ background: #fff;
+ padding: 20px;
+}
+.warranty-card .card-head {
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ margin: 0 0 10px;
+}
+.warranty-card p { margin: 0 0 12px; font-size: 14px; }
+.meta-list {
+ list-style: none;
+ padding: 0;
+ margin: 14px 0 0;
+ border-top: 1px solid var(--rule);
+}
+.meta-list li {
+ display: grid;
+ grid-template-columns: 140px 1fr;
+ padding: 8px 0;
+ font-size: 13px;
+ border-bottom: 1px dotted var(--rule);
+}
+.meta-list li span {
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ align-self: center;
+}
+.meta-list li a {
+ color: var(--ink);
+ text-decoration: none;
+ border-bottom: 2px solid var(--ink);
+}
+.meta-list li a:hover { background: var(--accent); }
+
+.binder {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 18px;
+ margin: 18px 0 24px;
+}
+@media (max-width: 720px) { .binder { grid-template-columns: 1fr; } }
+.binder-tab {
+ display: block;
+ padding: 22px 24px;
+ background: #fff;
+ border: 2px solid var(--ink);
+ text-decoration: none;
+ color: var(--ink);
+ position: relative;
+ box-shadow: 6px 6px 0 var(--ink);
+ transition: transform 0.08s ease, box-shadow 0.08s ease;
+}
+.binder-tab:hover {
+ transform: translate(-2px, -2px);
+ box-shadow: 8px 8px 0 var(--ink);
+ background: var(--accent);
+}
+.tab-no {
+ display: inline-block;
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.14em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ margin-bottom: 6px;
+}
+.tab-name {
+ display: block;
+ font-weight: 800;
+ font-size: 18px;
+ margin: 2px 0 6px;
+}
+.tab-meta {
+ display: block;
+ font-size: 12px;
+ color: #2a2a22;
+}
+
+.foot-rule {
+ margin-top: 20px;
+ padding-top: 12px;
+ border-top: 1px solid var(--rule);
+ font-family: "Courier New", monospace;
+ font-size: 11px;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: #5b5a51;
+ text-align: center;
+}
+.reorder {
+ font-family: "Courier New", monospace;
+ font-size: 10px;
+ letter-spacing: 0.16em;
+ text-transform: uppercase;
+ color: #7a7869;
+ text-align: center;
+ margin: 6px 0 0;
+}
+
+@media print {
+ body { background: #fff; padding: 0; }
+ .sheet { box-shadow: none; border: none; page-break-after: always; }
+}