Created
March 17, 2026 19:23
-
-
Save emberian/e7b21d6bf0ecd0d8bb3caca451cbc223 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <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