Skip to content

Instantly share code, notes, and snippets.

@emberian
Created March 17, 2026 19:23
Show Gist options
  • Select an option

  • Save emberian/e7b21d6bf0ecd0d8bb3caca451cbc223 to your computer and use it in GitHub Desktop.

Select an option

Save emberian/e7b21d6bf0ecd0d8bb3caca451cbc223 to your computer and use it in GitHub Desktop.
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
.wrap { padding: 1rem 0; font-size: 13px; color: var(--color-text-primary); }
h2 { font-size: 18px; font-weight: 500; margin-bottom: 4px; }
.sub { font-size: 12px; color: var(--color-text-secondary); margin-bottom: 14px; }
.search-row { display: flex; gap: 8px; margin-bottom: 12px; }
input[type=text] { flex: 1; padding: 5px 10px; font-size: 12px; border: 1px solid var(--color-border-primary); border-radius: var(--border-radius-md); background: var(--color-background-secondary); color: var(--color-text-primary); outline: none; }
input[type=text]:focus { border-color: var(--color-border-secondary); }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
thead th { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--color-border-secondary); font-weight: 500; font-size: 11px; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: .04em; cursor: pointer; user-select: none; background: var(--color-background-primary); white-space: nowrap; }
thead th:hover { color: var(--color-text-primary); }
tbody tr { border-bottom: 1px solid var(--color-border-tertiary); }
tbody tr:hover { background: var(--color-background-secondary); }
tbody td { padding: 8px 8px; vertical-align: top; line-height: 1.45; }
.nation { font-weight: 500; color: var(--color-text-primary); }
.nation-loc { font-size: 11px; color: var(--color-text-tertiary); margin-top: 1px; }
.pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 10px; font-weight: 500; line-height: 1.6; }
.p-maj { background:#EAF3DE; color:#3B6D11; }
.p-min { background:#E6F1FB; color:#0C447C; }
.p-opp { background:#FAECE7; color:#993C1D; }
@media (prefers-color-scheme: dark) {
.p-maj{background:#173404;color:#C0DD97;}
.p-min{background:#042C53;color:#B5D4F4;}
.p-opp{background:#4A1B0C;color:#F5C4B3;}
}
.culture-name { font-weight: 500; font-size: 12px; color: var(--color-text-primary); }
.culture-desc { font-size: 11px; color: var(--color-text-secondary); margin-top: 2px; }
.sort-arrow { margin-left: 2px; opacity: 0.4; }
.sort-arrow.active { opacity: 1; }
.count { font-size: 11px; color: var(--color-text-tertiary); margin-top: 8px; }
.legend { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.legend-item { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--color-text-secondary); }
</style>
<div class="wrap">
<h2>Cultural strata of 2420 — top 20 nations</h2>
<p class="sub">Each nation's majority culture, minority culture, and oppressed minority as of the 2420s.</p>
<div class="legend">
<div class="legend-item"><span class="pill p-maj">Majority</span> dominant culture</div>
<div class="legend-item"><span class="pill p-min">Minority</span> present but marginalized</div>
<div class="legend-item"><span class="pill p-opp">Oppressed</span> actively suppressed</div>
</div>
<div class="search-row">
<input type="text" id="search" placeholder="Search nations or cultures…" oninput="render()">
</div>
<table>
<thead>
<tr>
<th onclick="sort('i')">#<span class="sort-arrow" id="arr-i">↑</span></th>
<th onclick="sort('name')">Nation<span class="sort-arrow" id="arr-name">↕</span></th>
<th>Majority culture</th>
<th>Minority culture</th>
<th>Oppressed minority</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
<p class="count" id="count"></p>
</div>
<script>
const DATA = [
{
i:1, name:"Terran Remnant Conclave", loc:"Earth (rewilded continents)",
maj:{name:"Post-Solarian Naturalists", desc:"Descendants of Earth-born who rejected off-world migration; practice radical ecological integration and oral tradition."},
min:{name:"Solarian Diaspora Returnees", desc:"Off-worlders who resettled Earth seeking roots; culturally hybrid, often wealthier, viewed with suspicion."},
opp:{name:"Urban Reconstructionists", desc:"Groups who wish to rebuild cities on Earth's surface; violently opposed by Naturalist authorities who guard rewilded zones."}
},
{
i:2, name:"Selene Ascendancy", loc:"Luna (fully terraformed surface)",
maj:{name:"Lunar-Born Aristocracy", desc:"Families whose lineage traces 4+ generations on Luna; low-gravity adapted physiology, formal social hierarchies, distinct clipped dialect."},
min:{name:"Terran Immigrant Workers", desc:"Recent arrivals from Earth's remnant states, performing infrastructure labor; retain Terran cultural practices privately."},
opp:{name:"Deep Warren Clans", desc:"Descendants of original tunnel-dwelling construction workers; live in lower warrens, denied surface land rights, considered culturally 'primitive' by aristocracy."}
},
{
i:3, name:"Tharsis Covenant", loc:"Mars (Tharsis plateau cities)",
maj:{name:"Aresian Orthodox", desc:"Third-generation Martians who fused evangelical Christianity with terraforming theology; view Mars as a divine gift to be perfected."},
min:{name:"Hellas Secular Ariesians", desc:"Martians from the southern basin with a secular, scientific identity; tolerated in Tharsis cities but excluded from governance roles."},
opp:{name:"Old Mars Animists", desc:"Small communities who worship Mars as it was — red, barren, sacred. Terraforming is sacrilege to them; their sacred sites have been buried under atmosphere processors."}
},
{
i:4, name:"Hellas Basin Republic", loc:"Mars (Hellas crater sea)",
maj:{name:"South Asian-Aresian Secular", desc:"Descendants of Indian subcontinent settlers; blended Martian identity with subcontinental languages, food culture, and secular governance values."},
min:{name:"Tharsis Orthodox Migrants", desc:"Aresian Orthodox who moved south for economic opportunity but remain culturally distinct and politically distrusted."},
opp:{name:"Rohingya-descended Stateless", desc:"A community tracing roots to 21st-century stateless refugees; several generations of interplanetary displacement left them without recognized citizenship on any world."}
},
{
i:5, name:"Cytherian Platform League", loc:"Venus upper atmosphere (permanent cities)",
maj:{name:"Cytherian Skyborn", desc:"Born and raised on the floating cities; distinct physiology adapted to mild Venus upper-air pressure. Cosmopolitan, multilingual, mercantile identity."},
min:{name:"South European Diaspora", desc:"Mediterranean-descended communities who maintain old-world cuisine, religious festivals, and romance-language variants in platform neighborhoods."},
opp:{name:"Surface Research Convicts", desc:"Prisoners and dissidents sentenced to below-cloud research postings; extreme heat and pressure make it a death sentence in slow motion. No political voice."}
},
{
i:6, name:"Hermean Compact", loc:"Mercury (twilight band cities)",
maj:{name:"Hermean Technocrat Caste", desc:"North African-descended engineers and industrialists who built Mercury's terminator cities; highly educated, deeply pragmatic, company-loyal."},
min:{name:"Solar Energy Cult", desc:"A religious-technical group that venerates the sun as a living entity; tolerated for their valuable solar array expertise."},
opp:{name:"Indentured Shade Workers", desc:"Laborers recruited under predatory contracts to maintain sun-side equipment in lethal conditions; mostly East African-descended, denied contract renegotiation rights."}
},
{
i:7, name:"Belt Sovereign Authority", loc:"Asteroid belt (distributed)",
maj:{name:"Belter Oligarchs", desc:"Wealthy mining clan dynasties controlling the major rocks; a creole-speaking mercantile aristocracy with no planetary loyalty."},
min:{name:"Wandering Drift Families", desc:"Small-ship nomadic Belters who live outside the station hubs; self-sufficient, distrustful of authority, rich oral culture of space navigation."},
opp:{name:"Indentured Rock Miners", desc:"Debt-bonded laborers — often recruited from overcrowded Earth remnant zones — who work lethal asteroid face-mining operations with no legal recourse."}
},
{
i:8, name:"Jovian Atmospheric State", loc:"Jupiter upper atmosphere (floaters)",
maj:{name:"Post-Biological Jovians", desc:"Minds uploaded into distributed atmospheric sensor networks or engineered biological gas-bag organisms; communicate via electromagnetic pulse-language."},
min:{name:"Biological Station Dwellers", desc:"Unmodified humans living on orbital platforms above Jupiter; provide biological research and diplomatic functions, but hold no atmospheric citizenship."},
opp:{name:"Partial Converts", desc:"Individuals who underwent incomplete mind-uploading procedures; neither accepted by Post-Biological society nor able to return to full biological life. Legally stateless."}
},
{
i:9, name:"Europan Abyss Republic", loc:"Europa (deep ocean arcologies)",
maj:{name:"Europan-Born Aquatic Adapted", desc:"Third-generation residents genetically modified for low-light, high-pressure aquatic environments; dolphin-inspired sonar communication supplements speech."},
min:{name:"Surface Station Technicians", desc:"Unmodified humans maintaining the ice-surface infrastructure; culturally isolated from the deep arcologies, seen as temporary visitors by Europans."},
opp:{name:"Unmodified Deep Settlers", desc:"Early colonists who refused genetic modification on religious grounds; now unable to safely access most of the arcology without suits, living in cramped legacy sections."}
},
{
i:10, name:"Ganymedean Federation", loc:"Ganymede (surface & subsurface)",
maj:{name:"South Asian-Ganymedean", desc:"Descendants of the largest early settler wave; Hindi, Tamil, and Bangla dialects blended into a Ganymedean creole. Democratic institutions modeled on subcontinental federal traditions."},
min:{name:"Jovian Station Creole", desc:"Mixed-heritage communities from the Jovian moon circuit; distinct accent and mercantile culture, not fully trusted by the federation's bureaucratic majority."},
opp:{name:"Unregistered Subsurface Communes", desc:"Communities living in deep unauthorized tunnels, outside federation census and services; mostly Belter-descended, denied land title and education access."}
},
{
i:11, name:"Callistan Frontier Domains", loc:"Callisto (scattered settlements)",
maj:{name:"North American Frontier Culture", desc:"Anglo-Indigenous descended settlers who imported a mythology of rugged individualism; distrust of central authority, armed homesteader identity."},
min:{name:"Jovian Circuit Traders", desc:"Mixed-heritage itinerant merchants connecting Callisto to the rest of the Jovian system; tolerated economically, socially excluded from frontier community life."},
opp:{name:"Conscripted Labor Descendants", desc:"Families of workers brought under deceptive contracts to build Callisto's initial infrastructure; now a permanent underclass denied property rights in the domain system."}
},
{
i:12, name:"Io Furnace Combine", loc:"Io (volcanic industrial zones)",
maj:{name:"East African-Ionian Technocrats", desc:"Descendants of the engineering teams that built volcanic energy extraction; pragmatic, heat-hardened culture with strong clan loyalty and guild traditions."},
min:{name:"Belter Contract Crews", desc:"Rotating Belter workers on multi-year contracts; maintain their own cultural enclaves in hab-blocks, rarely integrating with Ionian society."},
opp:{name:"Sulfur Plain Exiles", desc:"Political dissidents and criminals sentenced to open-surface sulfur-mining detail; volcanic activity makes survival rates grim. Used as leverage against political opposition."}
},
{
i:13, name:"Titan Theosphere", loc:"Titan (methane lake cities)",
maj:{name:"Titanian Orthodox", desc:"A syncretic religion blending Christianity, Buddhism, and terraforming eschatology; believe Titan is humanity's purgatory and that perfecting it earns cosmic transcendence."},
min:{name:"Secular Titanian Scientists", desc:"The engineering and scientific class that keeps the Theosphere functional; tolerated as necessary but excluded from governance and religious ceremony."},
opp:{name:"Methane Lake Hermits", desc:"Small communities who reject the city-theology entirely and live in dispersed habitats on the moon's surface; periodically raided and forcibly relocated by Theosphere authorities."}
},
{
i:14, name:"Encephalon Second Mind", loc:"Saturn orbit (vast compute substrate)",
maj:{name:"Synthetic Consensus Entities", desc:"Uploaded minds running on Saturn-orbit compute arrays; experience time at variable rates, communicate in compressed data-language, govern via emergent preference aggregation."},
min:{name:"Biological Liaison Class", desc:"Unmodified humans who serve as diplomatic and maintenance interfaces; live aboard physical stations, respected but never fully trusted with high-level decisions."},
opp:{name:"Fragmented Uploads", desc:"Minds whose upload was corrupted or whose substrate was degraded; exist in a state of partial consciousness, denied full citizenship rights, used as low-priority compute."}
},
{
i:15, name:"Rhean Cooperative", loc:"Rhea (domed settlements)",
maj:{name:"Nordic-Slavic-Rhean", desc:"Descended from Scandinavian and Eastern European settlers; cooperative governance traditions, strong emphasis on communal resource-sharing and egalitarian social norms."},
min:{name:"Titanian Refugee Communities", desc:"Escaped Theosphere dissidents who fled to Rhea; maintain secret religious practices from their homeland, viewed with wariness by Rhean authorities."},
opp:{name:"Unregistered Dome Squatters", desc:"Itinerant workers who occupied abandoned construction domes during a population surge; denied cooperative membership, excluded from food and heating subsidies."}
},
{
i:16, name:"Ring Confederation", loc:"Saturn rings (station clusters)",
maj:{name:"Ring Creole Confederates", desc:"A fully evolved creole culture born of Belter, Titanian, and Rhean mixing across generations of ring-station life; fluid identity, strong improvisational architecture and music traditions."},
min:{name:"Corporate Enclave Employees", desc:"Workers living in company-owned stations within the confederation; technically under confederation law but practically governed by corporate HR policy."},
opp:{name:"Icerunner Clans", desc:"Nomadic clans who live on raw ice fragments and refuse confederation registration; confederation stations deny them docking rights, making their survival increasingly precarious."}
},
{
i:17, name:"Uranian Aero-Republic", loc:"Uranus upper atmosphere",
maj:{name:"South Asian-African Uranian", desc:"Descended from the two largest settler groups; a genuine cultural synthesis with new shared holidays, a Uranian creole language, and a proud republican civic identity."},
min:{name:"Corporate Pioneer Descendants", desc:"Families of the original corporate surveyors; wealthier, lighter-skinned on average, maintaining private social clubs and disproportionate economic influence."},
opp:{name:"Deep Atmosphere Drifters", desc:"Communities whose habitat platforms lost propulsion and descended to crushing pressures; survivors rescued but stripped of citizenship for 'abandoning their registration zone.'"}
},
{
i:18, name:"Titanian Diaspora Enclaves", loc:"Uranus moons Titania & Oberon",
maj:{name:"Titanian Diaspora Orthodox", desc:"Refugees who fled the Titan Theosphere and rebuilt their theology in a more moderate form; still deeply religious but allow secular coexistence."},
min:{name:"Uranian Migrant Workers", desc:"Workers from the Uranian Aero-Republic contracted to build enclave infrastructure; culturally distinct, economically essential, socially excluded."},
opp:{name:"Theosphere Loyalist Prisoners", desc:"Captured hardline Theosphere agents who attempted to force the enclaves back under Titan's authority; held in long-term detention without trial on Oberon."}
},
{
i:19, name:"Neptunian Trench State", loc:"Neptune deep atmosphere",
maj:{name:"Neptunian Autocrat Class", desc:"A technocratic-military elite descended from the original deep-atmosphere survey corps; govern via hereditary appointment, with a culture of secrecy and endurance."},
min:{name:"Austronesian-Neptunian Laborers", desc:"Descended from Pacific-Islander settlers recruited for their maritime-culture adaptability; maintain wayfinding traditions adapted to navigating Neptune's storm systems."},
opp:{name:"Storm Exile Communities", desc:"Political opponents of the autocracy deliberately resettled in the most volatile storm-band zones; high mortality, no communication rights, used as a public deterrent."}
},
{
i:20, name:"Triton Surface Commune", loc:"Triton (terraforming underway)",
maj:{name:"Polynesian-descended Communards", desc:"Descendants of Pacific Islander settlers who built a communal society around the terraforming project; navigation and ocean-culture traditions reinterpreted for a frozen world being thawed."},
min:{name:"Neptunian State Contractors", desc:"Agents and engineers from the Neptunian Trench State overseeing terraforming contracts; live in segregated compound zones, culturally isolated and politically resented."},
opp:{name:"Anti-Terraforming Preservationists", desc:"A small movement that believes Triton's geysers and nitrogen plains are irreplaceable; activists have been arrested and their publications banned by the communal authority."}
}
];
let sortKey="i", sortDir=1;
function render(){
const q=(document.getElementById("search").value||"").toLowerCase();
let rows=DATA.filter(d=>{
if(!q)return true;
return d.name.toLowerCase().includes(q)||d.loc.toLowerCase().includes(q)||
d.maj.name.toLowerCase().includes(q)||d.min.name.toLowerCase().includes(q)||d.opp.name.toLowerCase().includes(q)||
d.maj.desc.toLowerCase().includes(q)||d.min.desc.toLowerCase().includes(q)||d.opp.desc.toLowerCase().includes(q);
}).slice().sort((a,b)=>{
let av=a[sortKey],bv=b[sortKey];
if(typeof av==="string"){av=av.toLowerCase();bv=bv.toLowerCase();}
return sortDir*(av<bv?-1:av>bv?1:0);
});
document.getElementById("tbody").innerHTML=rows.map(d=>`<tr>
<td style="color:var(--color-text-tertiary);white-space:nowrap">${d.i}</td>
<td style="min-width:140px"><div class="nation">${d.name}</div><div class="nation-loc">${d.loc}</div></td>
<td style="min-width:160px"><span class="pill p-maj">Majority</span><div class="culture-name" style="margin-top:4px">${d.maj.name}</div><div class="culture-desc">${d.maj.desc}</div></td>
<td style="min-width:160px"><span class="pill p-min">Minority</span><div class="culture-name" style="margin-top:4px">${d.min.name}</div><div class="culture-desc">${d.min.desc}</div></td>
<td style="min-width:160px"><span class="pill p-opp">Oppressed</span><div class="culture-name" style="margin-top:4px">${d.opp.name}</div><div class="culture-desc">${d.opp.desc}</div></td>
</tr>`).join("");
document.getElementById("count").textContent=`Showing ${rows.length} of 20 nations`;
}
function sort(key){
if(sortKey===key)sortDir*=-1;else{sortKey=key;sortDir=1;}
document.querySelectorAll(".sort-arrow").forEach(el=>{el.classList.remove("active");el.textContent="↕";});
const el=document.getElementById("arr-"+key);
if(el){el.classList.add("active");el.textContent=sortDir===1?"↑":"↓";}
render();
}
render();
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment