詛咒色彩:舊城

精靈、吸血鬼,或獸族——凱恩無論如何都會把你嚼碎。一個垂死的幫派。沒有乾淨的退路。

劇情簡介

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; } } 成立於三百年前  ◆  依然屹立 CAYNE一個不在乎的城市 由精靈建造。被吸血鬼買下。為出價最高者執法。 六十萬人口。十一個派系。奴隸制結束二十年——曾經擁有奴隸的人依然富有。你從底層開始。世界已在運轉。 奴隸制廢除 // 二十年前 黑曜之手 // 節節敗退 ASD特別行動組 // 調查進行中 文穆爾控股 // 收購灰門 赤潮 // 擴張中 德拉西斯工業 // 貨物失踪 凱倫·沃斯 // 灰門監獄 奴隸制廢除 // 二十年前 黑曜之手 // 節節敗退 ASD特別行動組 // 調查進行中 文穆爾控股 // 收購灰門 赤潮 // 擴張中 德拉西斯工業 // 貨物失踪 凱倫·沃斯 // 灰門監獄 世界 六十萬人。沒有人等你。 凱恩由不再擁有它的精靈建造,由不住在其中的吸血鬼買下,由為預算簽字者服務的機構執法。 奴隸制在二十年前被廢除。從中獲利的人依然在這裡——同樣的建築、同樣的生意、同樣的律師。德拉西斯工業改了文書,而非做法。《安置法案》將自由轉為債務。城市重組了,並稱之為進步。 你從黑曜之手的底層開始——這是城裡最後一個精靈幫派,這一代人一直在瓦解一切精靈事物。黑手正在死去。警方步步緊逼。競爭對手趁虛而入。幕後的公司不在乎誰控制碼頭窄巷,只要有人默默以他們設定的價格控制就行。 "瑪倫·鐵域每晚六點鐘都會在王冠鹿喝酒。她這樣做了十一年。那些認為這讓她可預測的人已經不在了,無法修正他們的判斷。" 六個區域 同一座城。不同的規則。 同一條法律,取決於你在街的哪一邊被攔住,執行方式就不同。 王冠丘 吸血鬼與精靈貴族 舊錢。徹夜點著弧光燈。血療館與私家執法。市議會在此開會。那些告訴議會該決定什麼的人也在這裡。 商人區 人類中產階級 有抱負而恐懼。上層人類家庭,矮人實業家。鐵域幫在此活動,有聘請的律師和市議會聯絡人。 灰門 舊精靈區 三百年歷史的建築無人維護。煤氣燈照明。人口密集。黑手控制著兩個街區。文穆爾已經在邊緣收購了六年。大家都知道結局如何。 鑄造區 工業與勞動 德拉西斯工廠。煤煙與煉金廢料。獸人與獸族人口大多仍在償還自由債務。赤潮在這裡最強。 碼頭窄巷 轉運區 高流動性。混雜人口。黑手佔據了二十年。鐵域的勢力上週出現在兩個街角。黑手不戰而退。 地下墓穴 一切之下 一座自建城市的地下網絡。黑市。一切無註冊。唯一法律行動緩慢的地方。蒼白市集居於此。 十一個派系 全部在動。同時進行。 沒有人等你先行動。 黑曜之手精靈幫派 · 你方 在法律停止保護精靈時成立。先是互助,後成犯罪。剩餘28名活躍成員,兩個萎縮的區域,創始人在監獄,一個未被識別的線人。 垂死堅守 鐵域幫人類幫派 · 擴張中 三代舊錢犯罪。律師、議會聯絡、合法掩護。夠耐心讓警察做完工作,然後再進場。不會永遠耐心。 擴張中觀望 赤潮解放運動 不僅是一個幫派。曾是奴隸的獸族、獸人和哥布林。互助、非法學校、安全通道——以及燒毀建築的意願。政治動機。快速成長。 成長中動員中 蒼白市集情報掮客 無地盤。無標誌。向包括警察在內的所有人出售情報。目前正分批向ASD出售黑手成員資料。一個垂死的幫派是持續的收入。 隱藏牟利 灰道兄弟會摩托幫 · 走私 經營城市間的補給線。半組織化,行為準則。東路一個新檢查站正在燒錢。他們想讓它消失。方法可談。 穩定沮喪 虛無騎士摩托幫 · 僱傭 任何工作。無忠誠。刻意混亂。本週有三個派系接洽他們。他們正在決定誰出價更高。 鬆散待僱 凱恩都市警察 / ASD警察 · 派系分裂 非鐵板一塊。高層指揮是長壽種族和舊家族。貧困區的巡警是低薪的人類和獸族。ASD已立案三年。 活躍逼近 文穆爾控股企業 · 吸血鬼控制 擁有或持有凱恩40%可居住建築的債務。撰寫了將精靈排除在物業所有權之外的租賃條款。目前通過一筆城市改善撥款資助ASD預算。 收購中等待 德拉西斯工業企業 · 工業 三座鑄造廠。從奴隸勞工轉為合約勞工,未改變條件。一批未經許可的煉金組件貨物失踪。他們不驚動警察地尋找。 暴露尋找中 克雷斯特韋爾資訊企業 · 媒體 擁有水晶有線網絡。出版兩大報紙。分層出售資訊——公開、私密,以及官方不存在的第三層。無所不知。 觀察始終 權力 事物秩序 誰統治凱恩。按順序。 01貴族 吸血鬼貴族家族與精靈舊家族——數個世紀的複利財富,他們為之撰寫規則的機構,以及他們之間的冷戰,已摧毀數十個派系,卻從未觸及雙方認為互利的東西。 02企業 文穆爾、德拉西斯、克雷斯特韋爾——比民選議會擁有更多實權。他們資助自己需要的機構,重塑不喜歡的法律。從不在後果中顯現。 03商人階級 上層人類、矮人實業家、被收編的精靈——真正的舒適,真實的脆弱。一代蹉跌就會失去一切。恐懼下層階級。對上層階級有用。 04工人階級 大多數人類、已註冊獸族、有證哥布林——日復一日,沒有緩衝。犯罪地下世界與此階層相鄰,而非其下。黑手建於此。 05其餘 曾為奴隸、未註冊、無文件者——技術上自由了二十年。實際上,除非法律想找到他們,否則對法律隱形。這是赤潮汲取之處。這是凱恩的良知所在,如果它有的話。 生動的世界 這座城市不等待。 每個派系都有當前行動綱領。無論你是否在看,鐵域幫都在將勢力移入碼頭窄巷。ASD在十日節早晨提交逮捕令。文穆爾按照無人公佈的時間表在邊緣收購。 你透過後果發現事件。上週還是黑手地盤的街角現在有了新面孔。一間掩護生意被警方封鎖。一個聯絡人不再回消息。 在事件發生前讀懂城市是技能。對其做出反應是生存。世界不會暫停。它不在乎你是新人。 已經發生 第1週 鐵域勢力出現在碼頭窄巷兩個街角。黑手不戰而退。 第2週 ASD逮捕黑手士兵德克斯·馬爾。他知道三個安全屋位置。 第3週 赤潮在灰門邊界開設一個站點。黑手尚未回應。 第4週 蒼白市集向ASD交付部分黑手成員名單。三個名字。還不是重要的。尚未。 現在 你從這裡開始。其餘已在運轉。 運作方式 無人寫下的規則。 奴隸制已成歷史 二十年前廢除。曾經擁有奴隸的人依然富有。《安置法案》將自由轉為債務。德拉西斯工業改了文書,而非做法。 書面上的法律 凱恩的法律條文沒有明確歧視。效果卻是明確的。精靈需要人類共同簽署人。獸族每年登記。吸血鬼擁有完整的公民權利——那種需要數世紀談判才能達成的權利。 長壽,長記性 吸血鬼和精靈建立了機構。他們比所有反對者都長壽。他們不視自己為壓迫者。他們視自己為守護者。這種區分對他們很重要。 階級吞噬種族 灰門的貧窮精靈面臨工人階級人類的敵意,他們將所有精靈歸咎於貧窮精靈無法觸及的貴族。貴族從這種混淆中受益,且無意糾正。 暴力有重量 一具屍體意味著關注、調查、可能數週後才來的報復。安靜的解決方案總是優於喧鬧的。長壽者尤其會注意到喧鬧。他們有時間回應。 警察有忠誠 高層指揮保護高層利益。貧困區的巡警來自那些社區。有些人同情。有些人領薪。這個機構並非統一,也從未被設計為統一。 你從這裡開始 街頭執法者。黑曜之手。灰門區。 黑手正在死去,你知道。你的父親在灰門監獄。城市正朝著無人詢問過你的方向移動。你有一個街角、一個聯絡人,以及足夠的信譽來接下一個工作。如何利用是你的選擇。 世界按照自己的時間表運轉  ◆  你在其中。而非其上。 凱恩  ·  黑暗奇幻犯罪劇  ·  生動的世界  ·  無固定結局

開場場景

HEAT: 0 | 階級: 街頭 | 日: 1 聲望 — 黑手: 0 | 警察: 0 | 鐵域: 0 | 赤潮: 0 | 街頭: 0你從十六歲起就吃櫻桃口味棒棒糖,現在也不覺得有理由改變。黃昏時的灰門聞起來像潮濕的石頭、三層樓上某人的晚餐,以及一種特別的安靜,意味著人們看到你走來時便進屋去了。煤氣燈剛剛點亮。往東兩個街區,弧光燈開始亮起的地方,就是商人區。你必須在那些燈完全亮起前回到線的這一邊,否則就需要拿出證件。你對此的了解如同了解自己的心跳——無需思考,不再有苦澀。只是城市允許你的地圖。珊娜的聯絡人告訴你,在燈光全亮時要到卡特街與維爾街的拐角處。你早了。你總是早到。你父親教導你,準時只會花費時間,而遲到則會花費一切。你的父親在灰門監獄,就在同一個區的北端,已經十四個月了。你現在不去想那件事。對面街上有個男人靠牆看著你。你轉進卡特街時他就在那裡了。他不是黑手的人——姿勢不對,靜止的方式不對。可能是警察。可能是鐵域的人。可能是個倒楣的路人。燈全亮了。拐角很安靜。你打算怎麼做?

標籤: 遊戲 奇幻 科幻 家庭 升級 網絡龐克 未來感 男性POV 女性視角 任何POV 多個 人類 精靈 矮人 城市 吸血鬼 黑手黨 警察 政治陰謀

聊天次數: 6

作者: teirdel

故事

正在跳轉到 ISEKAI ZERO...