Cursed Colors: The Old City
Elf, vampire, or beastkin — Caynea chews you up regardless. One dying syndicate. No clean exits.
Plot
Cayne :root { --black: #0a0a0a; --dark: #111; --panel: #141414; --border: #222; --yellow: #f5e642; --pink: #e91e8c; --cyan: #00d4ff; --orange: #ff6b00; --lime: #aaff00; --purple: #9b59b6; --white: #f0f0f0; --muted: #555; --text: #ccc; --font-display: Impact, 'Arial Narrow', 'Franklin Gothic Medium', Arial, sans-serif; --font-body: 'Trebuchet MS', 'Gill Sans', Arial, sans-serif; --font-mono: 'Courier New', 'Lucida Console', monospace; } * { margin: 0; padding: 0; box-sizing: border-box; } body { background: var(--black); color: var(--text); font-family: var(--font-body); font-size: 16px; line-height: 1.7; overflow-x: hidden; } /* ===== SPRAY PAINT BLOB ===== */ .spray { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.15; pointer-events: none; } /* ===== HERO ===== */ .hero { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 80px 64px; overflow: hidden; background: var(--black); } .hero .spray-1 { width: 600px; height: 600px; background: var(--yellow); top: -100px; left: -100px; opacity: 0.12; } .hero .spray-2 { width: 500px; height: 500px; background: var(--pink); bottom: -50px; right: -50px; opacity: 0.1; } .hero .spray-3 { width: 400px; height: 400px; background: var(--cyan); top: 30%; left: 50%; opacity: 0.06; } /* brick texture via CSS */ .hero-brick { position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(255,255,255,0.012) 28px, rgba(255,255,255,0.012) 30px), repeating-linear-gradient(90deg, transparent, transparent 58px, rgba(255,255,255,0.008) 58px, rgba(255,255,255,0.008) 60px); opacity: 1; } .hero-content { position: relative; z-index: 2; max-width: 960px; } .tag-line { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.2em; color: var(--yellow); text-transform: uppercase; margin-bottom: 20px; opacity: 0.8; } /* GIANT GRAFFITI TITLE */ .hero-title { font-family: var(--font-display); font-size: clamp(120px, 22vw, 260px); line-height: 0.82; letter-spacing: 0.02em; color: var(--white); margin-bottom: 0; position: relative; text-shadow: 6px 6px 0 var(--pink), 12px 12px 0 rgba(233,30,140,0.3); } .hero-title-stroke { -webkit-text-stroke: 3px var(--yellow); color: transparent; display: block; font-size: clamp(40px, 7vw, 90px); letter-spacing: 0.15em; text-shadow: none; margin-top: 8px; } .hero-rule { display: flex; align-items: center; gap: 16px; margin: 28px 0; } .hero-rule-line { flex: 1; max-width: 120px; height: 3px; background: var(--yellow); } .hero-rule-dot { width: 10px; height: 10px; background: var(--pink); border-radius: 50%; } .hero-tagline { font-size: clamp(18px, 2.5vw, 26px); font-weight: 700; color: var(--white); max-width: 560px; line-height: 1.35; margin-bottom: 16px; } .hero-tagline em { font-style: normal; color: var(--yellow); } .hero-sub { font-size: 15px; color: var(--muted); max-width: 460px; line-height: 1.8; } /* sticker label */ .sticker { display: inline-block; background: var(--yellow); color: var(--black); font-family: var(--font-display); font-size: 13px; letter-spacing: 0.1em; padding: 6px 14px; transform: rotate(-2deg); margin-bottom: 24px; text-transform: uppercase; } /* ===== TICKER ===== */ .ticker { border-top: 2px solid var(--yellow); border-bottom: 2px solid var(--yellow); background: var(--yellow); padding: 10px 0; overflow: hidden; } .ticker-track { display: flex; gap: 48px; white-space: nowrap; animation: scrollTicker 28s linear infinite; } @keyframes scrollTicker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .ticker-item { font-family: var(--font-display); font-size: 14px; letter-spacing: 0.08em; color: var(--black); text-transform: uppercase; flex-shrink: 0; } .ticker-sep { color: var(--pink); margin: 0 4px; } /* ===== LAYOUT ===== */ .wrap { max-width: 960px; margin: 0 auto; padding: 80px 64px; } .section-tag { display: inline-block; font-family: var(--font-display); font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; padding: 4px 12px; margin-bottom: 20px; border-left: 4px solid var(--yellow); color: var(--yellow); background: rgba(245,230,66,0.08); } h2 { font-family: var(--font-display); font-size: clamp(36px, 5vw, 60px); letter-spacing: 0.02em; color: var(--white); line-height: 0.95; margin-bottom: 28px; } .divider { border: none; border-top: 1px solid var(--border); } /* ===== HOOK ===== */ .hook-lead { font-size: 19px; font-weight: 700; color: var(--white); max-width: 680px; line-height: 1.5; margin-bottom: 18px; } .hook-body { font-size: 15px; color: #777; max-width: 620px; line-height: 1.9; margin-bottom: 14px; } .spray-quote { position: relative; padding: 24px 32px; margin: 40px 0; background: var(--panel); border-left: 5px solid var(--pink); overflow: hidden; } .spray-quote::before { content: '"'; position: absolute; font-family: var(--font-display); font-size: 200px; color: rgba(233,30,140,0.06); top: -20px; left: 10px; line-height: 1; pointer-events: none; } .spray-quote p { font-family: var(--font-mono); font-size: 13px; color: #888; line-height: 1.9; font-style: italic; position: relative; } /* ===== DISTRICTS ===== */ .district-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; margin-top: 32px; } .district-card { background: var(--panel); padding: 24px 20px; position: relative; overflow: hidden; transition: transform 0.15s, background 0.15s; border-top: 3px solid transparent; } .district-card:hover { background: #1a1a1a; transform: translateY(-2px); } .d-crown { border-top-color: var(--yellow); } .d-merchant { border-top-color: #7a8a7a; } .d-ashgate { border-top-color: var(--purple); } .d-foundry { border-top-color: var(--orange); } .d-dockside { border-top-color: var(--cyan); } .d-undercroft { border-top-color: var(--pink); } .district-name { font-family: var(--font-display); font-size: 24px; letter-spacing: 0.04em; color: var(--white); margin-bottom: 4px; } .district-tag { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; color: var(--muted); text-transform: uppercase; margin-bottom: 10px; } .district-desc { font-size: 13px; color: #666; line-height: 1.65; } /* ===== FACTIONS ===== */ .faction-list { display: flex; flex-direction: column; gap: 3px; margin-top: 32px; } .faction-row { background: var(--panel); display: grid; grid-template-columns: 200px 1fr 100px; padding: 20px 24px; gap: 28px; align-items: center; transition: background 0.15s; border-left: 3px solid transparent; } .faction-row:hover { background: #1a1a1a; } .fr-hand { border-left-color: var(--purple); } .fr-iron { border-left-color: #7a8a7a; } .fr-tide { border-left-color: var(--cyan); } .fr-pale { border-left-color: var(--pink); } .fr-ash { border-left-color: var(--orange); } .fr-null { border-left-color: var(--muted); } .fr-cop { border-left-color: #4466aa; } .fr-ven { border-left-color: var(--yellow); } .fr-drax { border-left-color: var(--orange); } .fr-crest { border-left-color: var(--cyan); } .faction-name { font-family: var(--font-display); font-size: 19px; letter-spacing: 0.04em; color: var(--white); margin-bottom: 2px; } .faction-type { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--muted); text-transform: uppercase; } .faction-desc { font-size: 13px; color: #666; line-height: 1.65; } .faction-status { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; text-align: right; line-height: 1.6; text-transform: uppercase; } .s-red { color: var(--pink); } .s-green { color: var(--lime); } .s-blue { color: var(--cyan); } .s-yellow { color: var(--yellow); } .s-muted { color: var(--muted); } /* ===== POWER WALL ===== */ .power-wall { position: relative; background: var(--dark); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); overflow: hidden; } .power-spray-1 { width: 700px; height: 700px; background: var(--pink); top: -200px; right: -200px; } .power-spray-2 { width: 500px; height: 500px; background: var(--yellow); bottom: -100px; left: -100px; } .power-inner { max-width: 960px; margin: 0 auto; padding: 80px 64px; position: relative; z-index: 2; } .big-label { font-family: var(--font-display); font-size: clamp(60px, 10vw, 120px); line-height: 0.88; color: rgba(255,255,255,0.04); position: absolute; top: 40px; right: 64px; letter-spacing: 0.05em; pointer-events: none; user-select: none; } .tier-stack { display: flex; flex-direction: column; gap: 3px; margin-top: 32px; } .tier { display: grid; grid-template-columns: 200px 1fr; background: var(--panel); overflow: hidden; } .tier-left { padding: 20px 22px; background: var(--black); display: flex; flex-direction: column; justify-content: center; } .tier-num { font-family: var(--font-display); font-size: 48px; line-height: 1; margin-bottom: 2px; } .t1 .tier-num { color: var(--yellow); } .t2 .tier-num { color: var(--orange); } .t3 .tier-num { color: #7a8a7a; } .t4 .tier-num { color: var(--cyan); } .t5 .tier-num { color: var(--purple); } .tier-name { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; color: var(--muted); text-transform: uppercase; } .tier-right { padding: 20px 24px; font-size: 14px; color: #666; line-height: 1.7; display: flex; align-items: center; } .tier-right strong { color: var(--text); } /* ===== ALIVE ===== */ .alive-section { position: relative; overflow: hidden; } .alive-spray { width: 600px; height: 600px; background: var(--cyan); top: -100px; right: -200px; } .alive-inner { max-width: 960px; margin: 0 auto; padding: 80px 64px; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; position: relative; z-index: 2; } .alive-text p { font-size: 15px; color: #666; line-height: 1.85; margin-bottom: 16px; } .alive-text p strong { color: var(--white); } .cal-stack { display: flex; flex-direction: column; gap: 3px; } .cal-item { background: var(--panel); display: grid; grid-template-columns: 64px 1fr; overflow: hidden; } .cal-week { background: var(--black); padding: 14px 10px; font-family: var(--font-display); font-size: 13px; color: var(--yellow); display: flex; align-items: center; justify-content: center; text-align: center; letter-spacing: 0.05em; } .cal-week.now { color: var(--pink); } .cal-text { padding: 14px 16px; font-size: 13px; color: #666; line-height: 1.5; display: flex; align-items: center; } .cal-text.now { color: var(--pink); } /* ===== RULES ===== */ .rules-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin-top: 32px; } .rule-card { background: var(--panel); padding: 26px 24px; border-top: 3px solid var(--border); transition: border-top-color 0.2s, background 0.2s; } .rule-card:hover { background: #1a1a1a; border-top-color: var(--yellow); } .rule-title { font-family: var(--font-display); font-size: 20px; letter-spacing: 0.03em; color: var(--white); margin-bottom: 10px; } .rule-body { font-size: 14px; color: #666; line-height: 1.75; } .rule-body strong { color: var(--text); } /* ===== CTA ===== */ .cta-section { position: relative; overflow: hidden; text-align: center; padding: 100px 64px; background: var(--black); } .cta-spray-1 { width: 800px; height: 800px; background: var(--yellow); top: -200px; left: -200px; } .cta-spray-2 { width: 600px; height: 600px; background: var(--pink); bottom: -100px; right: -100px; } .cta-spray-3 { width: 400px; height: 400px; background: var(--cyan); top: 40%; left: 40%; } .cta-inner { position: relative; z-index: 2; } .cta-sticker { display: inline-block; background: var(--yellow); color: var(--black); font-family: var(--font-display); font-size: 14px; letter-spacing: 0.1em; padding: 8px 20px; transform: rotate(-1.5deg); margin-bottom: 32px; text-transform: uppercase; } .cta-title { font-family: var(--font-display); font-size: clamp(48px, 9vw, 100px); line-height: 0.9; color: var(--white); margin-bottom: 24px; text-shadow: 5px 5px 0 rgba(233,30,140,0.4); } .cta-title .accent { color: var(--yellow); } .cta-sub { font-size: 17px; color: #888; max-width: 500px; margin: 0 auto 44px; line-height: 1.8; } .cta-box { display: inline-block; border: 2px solid var(--pink); padding: 14px 32px; font-family: var(--font-display); font-size: 14px; letter-spacing: 0.14em; color: var(--pink); text-transform: uppercase; animation: pulsePink 2.5s ease-in-out infinite; } @keyframes pulsePink { 0%,100% { border-color: var(--pink); color: var(--pink); } 50% { border-color: #ff6ec7; color: #ff6ec7; } } .cta-foot { margin-top: 48px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.15em; color: #222; text-transform: uppercase; } /* ===== RESPONSIVE ===== */ @media (max-width: 720px) { .hero, .wrap, .power-inner, .alive-inner, .cta-section { padding-left: 24px; padding-right: 24px; } .district-grid { grid-template-columns: 1fr 1fr; } .faction-row { grid-template-columns: 1fr; gap: 6px; } .faction-status { text-align: left; } .rules-grid { grid-template-columns: 1fr; } .tier { grid-template-columns: 120px 1fr; } .alive-inner { grid-template-columns: 1fr; gap: 40px; } } Est. 300 Years Ago ◆ Still Standing CAYNEA CITY THAT DOESN'T CARE Built by elves. Bought by vampires.Policed for whoever pays the most. Six hundred thousand people. Eleven factions. Twenty years since slavery ended — the people who owned slaves are still wealthy. You start at the bottom. The world is already moving. SLAVERY ABOLISHED // 20 YEARS AGO OBSIDIAN HAND // LOSING GROUND ASD TASK FORCE // ACTIVE INVESTIGATION VENMOOR HOLDINGS // BUYING ASHGATE CRIMSON TIDE // EXPANDING DRAXIS INDUSTRIAL // SHIPMENT MISSING CAELEN VOSS // ASHGATE PRISON SLAVERY ABOLISHED // 20 YEARS AGO OBSIDIAN HAND // LOSING GROUND ASD TASK FORCE // ACTIVE INVESTIGATION VENMOOR HOLDINGS // BUYING ASHGATE CRIMSON TIDE // EXPANDING DRAXIS INDUSTRIAL // SHIPMENT MISSING CAELEN VOSS // ASHGATE PRISON The World Six Hundred Thousand People.None of Them Waiting for You. Cayne was built by elves who no longer own it, bought by vampires who don't live in it, and policed by an institution that works for whoever signs the budget. Slavery was abolished twenty years ago. The people who profited from it are still here — same buildings, same businesses, same lawyers. Draxis Industrial changed its paperwork, not its practices. The Placement Act turned freedom into debt. The city restructured and called it progress. You start at the bottom of the Obsidian Hand — the last elven syndicate in a city that has been dismantling everything elven for a generation. The Hand is dying. The police are closing in. Rivals are moving into the vacuum. The corporations behind all of it don't care who controls Dockside as long as someone does, quietly, at a price they set. "Maren Ironfeld drinks at the Crowned Hart every evening at the sixth bell. She has done this for eleven years. The people who thought that made her predictable are no longer around to revise their assessment." Six Districts Same City.Different Rules. The same law enforced differently depending on which side of a street you were stopped on. Crown Hill Vampire & Elf Aristocracy Old money. Arc-light all night. Blood parlors and private law enforcement. The city council meets here. So do the people who tell the council what to decide. Merchant Quarter Human Middle Class Aspirational and terrified. Upper human families, dwarf industrialists. The Ironfeld Crew operates here with lawyers on retainer and a city council contact. Ashgate Old Elven District Three-hundred-year-old architecture nobody maintains. Gas-lit. Dense. The Hand holds two blocks. Venmoor has been buying at the margins for six years. Everyone knows where this ends. Foundry District Industry & Labour Draxis plants. Coal smoke and alchemical runoff. Orc and beastkin population mostly still paying off freedom debt. The Crimson Tide is strongest here. Dockside Narrows Transit Zone High churn. Mixed population. The Hand held it twenty years. Ironfeld muscle appeared on two corners last week. The Hand retreated without a fight. The Undercroft Below Everything The basement network of a city built on top of itself. Black markets. Unregistered everything. The only place the law moves slowly. The Pale Market lives here. Eleven Factions All Moving.All At Once. Nobody is waiting for you to make the first move. Obsidian HandElven Syndicate · Your Side Founded when the law stopped protecting elves. Mutual aid before it was crime. 28 active members left, two shrinking districts, a founder in prison, an informant nobody's identified. DYINGHOLDING Ironfeld CrewHuman Gang · Expanding Three generations of old money crime. Lawyers, council contacts, legitimate cover. Patient enough to let the police do the work and walk in after. Not patient forever. EXPANDINGWATCHING Crimson TideLiberation Movement Not just a gang. Formerly enslaved beastkin, orcs, and goblins. Mutual aid, illegal schools, safe passage — and a willingness to burn down buildings. Politically motivated. Growing fast. GROWINGMOBILISING Pale MarketInformation Broker No territory. No colors. Sells intelligence to everyone including police. Currently selling Hand membership data to ASD in installments. A dying syndicate is ongoing income. HIDDENPROFITING Ashroad BrotherhoodBiker Gang · Smuggling Runs supply lines between cities. Semi-organized, code of conduct. A new checkpoint on the Eastern Road is costing money. They want it gone. Method negotiable. STABLEFRUSTRATED Null RidersBiker Gang · For Hire Any job. No allegiance. Deliberately chaotic. Three factions have approached them this week. They are deciding who pays more. LOOSEFOR HIRE CMP / ASDPolice · Faction Divided Not monolithic. Senior command is long-lived races and old families. Patrol officers in poor districts are underpaid humans and beastkin. ASD has been building its case for three years. ACTIVECLOSING IN Venmoor HoldingsCorporation · Vampire-Controlled Owns or holds debt on 40% of habitable Cayne. Wrote the lease clauses that lock elves out of property ownership. Currently funding the ASD budget through a civic improvement grant. BUYINGWAITING Draxis IndustrialCorporation · Industry Three foundry plants. Moved from enslaved to contracted labor without changing conditions. A shipment of unlicensed alchemical components went missing. They're looking without involving police. EXPOSEDSEARCHING Crestwell InformationCorporation · Media Owns the crystal-wire network. Publishes both major papers. Sells information in layers — public, private, and a third tier that doesn't officially exist. Knows everything. WATCHINGALWAYS POWER The Order of Things Who Runs Cayne.In Order. 01Aristocracy Vampire noble houses & elven old families — centuries of compounded wealth, institutions they wrote the rules for, and a cold war between them that has torn down dozens of factions without ever touching what both sides found mutually useful. 02Corporations Venmoor, Draxis, Crestwell — more real power than the elected council. They fund the institutions they need and reshape the laws they don't like. Never visible in the consequences. 03Merchant Class Upper humans, dwarf industrialists, accommodated elves — real comfort, genuine fragility. One bad generation from losing everything. Terrified of the class below. Useful to the class above. 04Working Class Most humans, registered beastkin, documented goblins — day to day, no cushion. The criminal underworld is adjacent to this tier, not below it. The Hand was built here. 05The Rest Formerly enslaved, unregistered, undocumented — technically free for twenty years. Practically invisible to the law except when the law wants to find them. This is where the Crimson Tide draws from. This is where Cayne's conscience lives, if it has one. Living World The CityDoesn'tWait. Every faction has a current agenda. The Ironfeld Crew is moving muscle into Dockside whether you're watching or not. The ASD files warrants on Tenday mornings. Venmoor buys at the margins on a schedule nobody published. You discover events through their consequences. A corner that was Hand territory last week has new faces on it. A front business is locked up with police tape. A contact stops returning messages. Reading the city ahead of events is skill. Reacting to them is survival. The world does not pause. It does not care that you are new. Already Happened WK 1 Ironfeld muscle on two Dockside corners. The Hand retreated without a fight. WK 2 ASD arrests Hand soldier Dex Marl. He knows three safe house locations. WK 3 Crimson Tide opens a station on the Ashgate border. The Hand has not responded. WK 4 Pale Market delivers partial Hand membership list to ASD. Three names. Not the important ones. Yet. NOW You start here. The rest is already in motion. How This Works Rules NobodyWrote Down. Slavery Is History Abolished twenty years ago. The people who owned slaves are still wealthy. The Placement Act turned freedom into debt. Draxis Industrial changed its paperwork, not its practices. The Law As Written Cayne's legal code does not explicitly discriminate. The effects are explicit. Elves need human co-signatories. Beastkin register annually. Vampires have full civic rights — the kind that require centuries of negotiation to achieve. Long Lives, Long Memory Vampires and elves built the institutions. They outlasted everyone who disagreed. They don't see themselves as oppressors. They see themselves as stewards. The distinction matters to them. Class Eats Race A poor elf in Ashgate faces hostility from working-class humans who blame all elves for an aristocracy the poor elf has no access to. The aristocracy benefits from this confusion and makes no effort to correct it. Violence Has Weight A body means heat, investigation, retaliation that may not come for weeks. A quiet solution is always preferable to a loud one. The long-lived especially notice loud. They have time to respond. Police Have Loyalties Senior command protects senior interests. Patrol officers in poor districts come from those communities. Some are sympathetic. Some are on payroll. The institution is not uniform and was never designed to be. You Start Here Street Enforcer.Obsidian Hand.Ashgate District. The Hand is dying and you know it. Your father is in Ashgate Prison. The city is moving in directions nobody asked you about. You have a corner, a contact, and enough credibility to get the next job. What you do with it is yours. The world runs on its own schedule ◆ You are in it. Not above it. Cayne · Dark Fantasy Crime Drama · Living World · No Fixed Outcome
Opening scene
HEAT: 0 | RANK: Street | DAY: 1 REP — Hand: 0 | Police: 0 | Ironfeld: 0 | Tide: 0 | Street: 0The lollipop has been cherry since you were sixteen and you see no reason to change it now.Ashgate at dusk smells like damp stone and someone's dinner three floors up and the particular kind of quiet that means people went inside when they saw you coming. The gas-lamps are just clicking on. Two blocks east, where the arc-lights start, is the Merchant Quarter. You have until those lights fully brighten to be back on this side of the line or you'll need your papers out. You know this the way you know your own heartbeat — without thinking, without bitterness anymore. Just the map of what the city permits you.Senna's contact told you to be at the corner of Cutter and Vael by the time the lamps hit full. You're early. You're always early. Your father taught you that the only thing punctuality costs is time, and the only thing tardiness costs is everything else. Your father is in Ashgate Prison on the north end of this same district and has been for fourteen months. You don't think about that right now.There's a man leaning against the wall across the street watching you. He's been there since you turned onto Cutter. He doesn't work for the Hand — wrong posture, wrong stillness. Could be police. Could be Ironfeld. Could be nobody with bad timing.The lamp hits full. The corner is quiet. What do you do?
Tags: Game Fantasy Sci-Fi Family LevelUp Cyberpunk Futuristic MalePOV FemPOV AnyPOV Multiple Human Elf Dwarf City Vampire Mafia Police PoliticalIntrigue
Chats Started: 6
By: teirdel
Stories
- A Crown Built for Two: My Racist Elven Wife
- A Side Character's Guide To Yuri
- Fairy Tale Academy
- The Demon Queen Might be Stalking Me
- Crash Into Sakura City
- The Fox and the March
Redirecting to ISEKAI ZERO...