{"id":16,"date":"2026-03-09T05:30:17","date_gmt":"2026-03-09T05:30:17","guid":{"rendered":"https:\/\/rimtown.cc\/?page_id=16"},"modified":"2026-03-15T04:19:23","modified_gmt":"2026-03-15T04:19:23","slug":"home","status":"publish","type":"page","link":"https:\/\/rimtown.cc\/","title":{"rendered":"home"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>RimTown \u2014 AI Town Simulation<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Share+Tech+Mono&#038;family=Rajdhani:wght@400;600;700&#038;family=Space+Mono:wght@400;700&#038;family=Noto+Sans+TC:wght@400;500;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --bg: #0a0c0f;\n    --surface: #111318;\n    --panel: #161a22;\n    --border: #2a3040;\n    --accent: #4ade80;\n    --accent2: #22d3ee;\n    --accent3: #f59e0b;\n    --text: #d4e0cc;\n    --muted: #6b7a6b;\n    --danger: #ef4444;\n    --grid: rgba(74,222,128,0.04);\n  }\n\n  * { margin: 0; padding: 0; box-sizing: border-box; }\n  a { text-decoration: none !important; color: inherit; }\n  html, body { overflow-x: hidden; width: 100%; }\n\n  body {\n    background: var(--bg);\n    color: var(--text);\n    font-family: 'Rajdhani', sans-serif;\n    font-size: 16px;\n    line-height: 1.6;\n  }\n\n  body::before {\n    content: '';\n    position: fixed; inset: 0;\n    background-image:\n      linear-gradient(var(--grid) 1px, transparent 1px),\n      linear-gradient(90deg, var(--grid) 1px, transparent 1px);\n    background-size: 40px 40px;\n    pointer-events: none; z-index: 0;\n  }\n  body::after {\n    content: '';\n    position: fixed; inset: 0;\n    background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.12) 2px, rgba(0,0,0,0.12) 4px);\n    pointer-events: none; z-index: 0;\n  }\n\n  .wrap { position: relative; z-index: 1; max-width: 1100px; width: 100%; margin: 0 auto; padding: 0 24px; }\n\n  \/* \u2500\u2500 HERO \u2500\u2500 *\/\n  .hero { padding: 80px 0 60px; position: relative; }\n  .hero .wrap {\n    display: grid;\n    grid-template-columns: 5fr 7fr;\n    gap: 40px;\n    align-items: center;\n    min-height: 80vh;\n  }\n  .hero-left { display: flex; flex-direction: column; justify-content: center; }\n  .hero-right { position: relative; display: flex; align-items: center; justify-content: center; overflow: visible; }\n\n  .hero-tag {\n    font-family: 'Share Tech Mono', monospace;\n    font-size: 11px; letter-spacing: 3px;\n    color: var(--accent); text-transform: uppercase;\n    margin-bottom: 24px;\n    display: flex; align-items: center; gap: 10px;\n  }\n  .hero-tag::before { content: '\u25b6'; animation: blink 1.2s step-end infinite; }\n  @keyframes blink { 50% { opacity: 0; } }\n\n  .hero h1 {\n    font-family: 'Space Mono', monospace;\n    font-size: clamp(40px, 10vw, 110px);\n    font-weight: 700; line-height: 0.9; letter-spacing: -2px;\n    color: #fff; margin-bottom: 8px;\n  }\n  .hero h1 span { color: var(--accent); text-shadow: 0 0 40px rgba(74,222,128,0.5); }\n\n  .hero-sub {\n    font-family: 'Share Tech Mono', monospace;\n    font-size: 12px; color: var(--accent2);\n    letter-spacing: clamp(0.5px, 0.5vw, 2px);\n    margin-bottom: 28px; margin-top: 12px;\n  }\n  .hero-desc { font-size: 16px; color: #8fa88a; max-width: 480px; line-height: 1.8; margin-bottom: 40px; }\n  .hero-desc strong { color: var(--accent); }\n\n  .hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }\n  .btn {\n    display: inline-flex; align-items: center; gap: 8px;\n    padding: 13px 28px;\n    font-family: 'Share Tech Mono', monospace;\n    font-size: 13px; letter-spacing: 1px;\n    border: 1px solid; transition: all 0.2s; cursor: pointer;\n  }\n  .btn-primary { background: var(--accent); color: #000; border-color: var(--accent); }\n  .btn-primary:hover { background: #86efac; box-shadow: 0 0 30px rgba(74,222,128,0.4); }\n  .btn-ghost { background: transparent; color: var(--accent2); border-color: var(--accent2); }\n  .btn-ghost:hover { background: rgba(34,211,238,0.08); }\n\n  \/* AI providers mini *\/\n  .ai-providers-mini {\n    display: flex; flex-wrap: wrap; gap: 6px;\n    margin-top: 28px; padding-top: 24px;\n    border-top: 1px solid var(--border);\n  }\n  .ai-label { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--muted); margin-right:4px; align-self:center; }\n  .ai-chip {\n    font-family:'Share Tech Mono',monospace; font-size:10px;\n    padding: 3px 9px; border: 1px solid var(--border);\n    color: var(--muted); letter-spacing: 0.5px;\n    transition: border-color 0.2s, color 0.2s;\n  }\n  .ai-chip.free { border-color: rgba(74,222,128,0.4); color: var(--accent); }\n\n  \/* Canvas panel *\/\n  .canvas-wrap { position: relative; width: 100%; max-width: 620px; overflow: hidden; }\n  .canvas-header {\n    display: flex; justify-content: space-between; align-items: center;\n    padding: 8px 14px;\n    background: rgba(74,222,128,0.06); border: 1px solid rgba(74,222,128,0.2); border-bottom: none;\n    font-family: 'Share Tech Mono', monospace; font-size: 10px;\n    color: rgba(74,222,128,0.7); letter-spacing: 2px;\n  }\n  .canvas-dots { display: flex; gap: 6px; }\n  .canvas-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(74,222,128,0.3); }\n  .canvas-dot:nth-child(1) { background: #ef4444; opacity: 0.6; }\n  .canvas-dot:nth-child(2) { background: #f59e0b; opacity: 0.6; }\n  .canvas-dot:nth-child(3) { background: #4ade80; opacity: 0.6; }\n  #townCanvas {\n    display: block;\n    width: 100% !important;\n    aspect-ratio: 1 \/ 1;\n    border: 1px solid rgba(74,222,128,0.2); border-top: none;\n    box-shadow: 0 0 80px rgba(74,222,128,0.12), 0 0 160px rgba(74,222,128,0.06);\n  }\n  .canvas-overlay {\n    position: absolute; top: 29px; left: 0; right: 0; bottom: 0;\n    background: linear-gradient(to right, var(--bg) 0%, transparent 6%),\n                linear-gradient(to left, var(--bg) 0%, transparent 6%),\n                linear-gradient(to bottom, transparent 88%, var(--bg) 100%);\n    pointer-events: none; z-index: 2;\n  }\n  .canvas-scanline {\n    position: absolute; top: 29px; left: 0; right: 0; bottom: 0;\n    background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,0,0,0.08) 3px, rgba(0,0,0,0.08) 4px);\n    pointer-events: none; z-index: 3;\n  }\n\n  \/* \u2500\u2500 TICKER \u2500\u2500 *\/\n  .ticker-bar { display: none; }\n  .ticker-label {\n    font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent);\n    letter-spacing:2px; white-space:nowrap; border:1px solid var(--accent); padding:3px 8px; flex-shrink:0;\n  }\n  .ticker-track { display:flex; gap:40px; animation:scroll 28s linear infinite; white-space:nowrap; }\n  @keyframes scroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }\n  .ticker-item { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--muted); }\n  .ticker-item strong { color:var(--text); }\n\n  \/* \u2500\u2500 SECTION \u2500\u2500 *\/\n  .section { padding: 100px 0; }\n  .section-header { display:flex; align-items:baseline; gap:16px; margin-bottom:60px; }\n  .section-num { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--accent); letter-spacing:2px; }\n  .section-title { font-family:'Space Mono',monospace; font-size:clamp(24px,4vw,40px); font-weight:700; color:#fff; letter-spacing:-1px; }\n  .section-desc { font-size:15px; color:var(--muted); line-height:1.8; max-width:580px; margin-top:-40px; margin-bottom:48px; }\n\n  \/* \u2500\u2500 FEATURES \u2500\u2500 *\/\n  .features-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 2px;\n  }\n  .feature-card {\n    background: var(--panel); border: 1px solid var(--border);\n    padding: 28px 24px; position: relative;\n    transition: border-color 0.2s, transform 0.2s;\n  }\n  .feature-card:hover { border-color: var(--accent); transform: translateY(-2px); }\n  .feature-card::before {\n    content:''; position:absolute; top:0; left:0;\n    width:3px; height:0; background:var(--accent); transition:height 0.3s;\n  }\n  .feature-card:hover::before { height:100%; }\n  .feature-icon { font-size:26px; margin-bottom:14px; display:block; }\n  .feature-name {\n    font-family:'Space Mono',monospace; font-size:13px; font-weight:700;\n    color:#fff; margin-bottom:8px; letter-spacing:0.5px;\n  }\n  .feature-desc { font-size:13px; color:var(--muted); line-height:1.7; }\n  .feature-tag {\n    display:inline-block; margin-top:10px;\n    font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:1px;\n    padding:2px 8px; border:1px solid var(--border); color:var(--muted);\n  }\n  .feature-tag.new { border-color:rgba(74,222,128,0.4); color:var(--accent); }\n\n  \/* \u2500\u2500 AGENTS \u2500\u2500 *\/\n  .agents-section { padding:100px 0; background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }\n  .agents-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; margin-top:20px; }\n  .agent-card { background:var(--panel); border:1px solid var(--border); padding:24px 20px; position:relative; overflow:hidden; }\n  .agent-card::after {\n    content:''; position:absolute; bottom:0; left:0; right:0; height:2px;\n    background:linear-gradient(90deg,var(--accent),transparent); opacity:0; transition:opacity 0.3s;\n  }\n  .agent-card:hover::after { opacity:1; }\n  .agent-status { display:flex; align-items:center; gap:6px; font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--accent); letter-spacing:1px; margin-bottom:14px; }\n  .status-dot { width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2s ease infinite; }\n  @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }\n  .agent-name { font-family:'Space Mono',monospace; font-size:15px; font-weight:700; color:#fff; margin-bottom:4px; }\n  .agent-job { font-size:12px; color:var(--accent2); font-family:'Share Tech Mono',monospace; letter-spacing:1px; margin-bottom:12px; }\n  .agent-traits { display:flex; flex-wrap:wrap; gap:6px; }\n  .trait { font-family:'Share Tech Mono',monospace; font-size:10px; letter-spacing:0.5px; padding:3px 8px; border:1px solid var(--border); color:var(--muted); }\n  .agent-mood { margin-top:16px; }\n  .mood-label { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--muted); letter-spacing:1px; margin-bottom:5px; }\n  .mood-bar { height:3px; background:var(--border); }\n  .mood-fill { height:100%; background:var(--accent); }\n  .agent-speech { margin-top:12px; font-size:12px; color:var(--muted); font-style:italic; line-height:1.5; padding-left:8px; border-left:2px solid var(--border); }\n\n  \/* \u2500\u2500 EVENTS \u2500\u2500 *\/\n  .events-section { padding:100px 0; }\n  .events-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; }\n  .event-card {\n    background:var(--panel); border:1px solid var(--border);\n    padding:28px; display:flex; gap:18px; align-items:flex-start;\n    transition:border-color 0.2s;\n  }\n  .event-card:hover { border-color:#3a4460; }\n  .event-icon-box {\n    width:44px; height:44px; background:var(--surface); border:1px solid var(--border);\n    display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; border-radius:4px;\n  }\n  .event-name { font-family:'Space Mono',monospace; font-size:13px; font-weight:700; color:#fff; margin-bottom:6px; }\n  .event-type { font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:1px; color:var(--muted); margin-bottom:8px; }\n  .event-desc { font-size:13px; color:var(--muted); line-height:1.7; }\n\n  \/* \u2500\u2500 AI SECTION \u2500\u2500 *\/\n  .ai-section { padding:100px 0; background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }\n  .ai-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; margin-top:-36px; }\n  .ai-provider {\n    display:flex; align-items:center; gap:14px;\n    padding:14px 16px; background:var(--panel); border:1px solid var(--border);\n    margin-bottom:6px; transition:border-color 0.2s;\n  }\n  .ai-provider:hover { border-color:#3a4460; }\n  .ai-provider-icon { font-size:20px; flex-shrink:0; }\n  .ai-provider-name { font-size:14px; font-weight:700; color:#fff; }\n  .ai-provider-desc { font-size:12px; color:var(--muted); margin-top:2px; }\n  .ai-provider-badge {\n    margin-left:auto; font-family:'Share Tech Mono',monospace; font-size:9px;\n    letter-spacing:1px; padding:3px 8px; border:1px solid; flex-shrink:0;\n  }\n  .badge-free { border-color:rgba(74,222,128,0.4); color:var(--accent); }\n  .badge-key { border-color:var(--border); color:var(--muted); }\n  .ai-tip {\n    background:rgba(74,222,128,0.05); border:1px solid rgba(74,222,128,0.15);\n    padding:20px; margin-top:20px;\n  }\n  .ai-tip-title { font-family:'Space Mono',monospace; font-size:13px; color:var(--accent); margin-bottom:10px; }\n  .ai-tip p { font-size:13px; color:var(--muted); line-height:1.8; }\n\n  \/* \u2500\u2500 CHANGELOG \u2500\u2500 *\/\n  .changelog-section { padding:100px 0; }\n  .changelog-list { display:flex; flex-direction:column; gap:0; }\n  .changelog-item {\n    display:grid; grid-template-columns:120px 1fr;\n    gap:0 28px; padding:20px 0; border-bottom:1px solid var(--border); align-items:start;\n  }\n  .changelog-item:last-child { border-bottom:none; }\n  .changelog-ver { font-family:'Share Tech Mono',monospace; font-size:13px; color:var(--accent); font-weight:700; }\n  .changelog-date { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--muted); margin-top:4px; }\n  .changelog-title { font-size:14px; color:#fff; font-weight:600; margin-bottom:8px; }\n  .changelog-tags { display:flex; flex-wrap:wrap; gap:6px; }\n  .ctag {\n    font-family:'Share Tech Mono',monospace; font-size:9px; letter-spacing:1px;\n    padding:2px 8px; border:1px solid;\n  }\n  .ctag-new { border-color:rgba(74,222,128,0.5); color:var(--accent); }\n  .ctag-fix { border-color:rgba(245,158,11,0.5); color:var(--accent3); }\n  .ctag-ui  { border-color:rgba(34,211,238,0.5); color:var(--accent2); }\n  .ctag-sys { border-color:rgba(239,68,68,0.4); color:#ef8888; }\n\n  \/* \u2500\u2500 STATS \u2500\u2500 *\/\n  .stats-bar { padding:60px 0; background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }\n  .stats-grid { display:grid; grid-template-columns:repeat(4,1fr); text-align:center; }\n  .stat-item { padding:0 24px; border-right:1px solid var(--border); }\n  .stat-item:last-child { border-right:none; }\n  .stat-num { font-family:'Space Mono',monospace; font-size:clamp(32px,5vw,52px); font-weight:700; color:var(--accent); line-height:1; margin-bottom:8px; }\n  .stat-label { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:1px; }\n\n  \/* \u2500\u2500 CTA \u2500\u2500 *\/\n  .cta-section { padding:120px 0; text-align:center; position:relative; }\n  .cta-section::before {\n    content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);\n    width:600px; height:300px;\n    background:radial-gradient(ellipse, rgba(74,222,128,0.07) 0%, transparent 70%);\n    pointer-events:none;\n  }\n  .cta-label { font-family:'Share Tech Mono',monospace; font-size:11px; letter-spacing:3px; color:var(--accent); margin-bottom:20px; }\n  .cta-title { font-family:'Space Mono',monospace; font-size:clamp(28px,5vw,52px); font-weight:700; color:#fff; line-height:1.1; margin-bottom:20px; }\n  .cta-title em { font-style:normal; color:var(--accent); }\n  .cta-desc { color:var(--muted); font-size:15px; margin-bottom:40px; max-width:480px; margin-left:auto; margin-right:auto; }\n\n  \/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n  footer { border-top:1px solid var(--border); padding:40px 0; position:relative; z-index:1; }\n  .footer-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }\n  .footer-brand { font-family:'Space Mono',monospace; font-size:16px; font-weight:700; color:var(--accent); }\n  .footer-brand span { display:block; font-size:10px; color:var(--muted); font-family:'Share Tech Mono',monospace; letter-spacing:1px; margin-top:3px; }\n  .footer-links { display:flex; gap:24px; flex-wrap:wrap; }\n  .footer-links a { font-family:'Share Tech Mono',monospace; font-size:11px; letter-spacing:1px; color:var(--muted); transition:color 0.2s; }\n  .footer-links a:hover { color:var(--accent); }\n\n  \/* \u2500\u2500 REVEAL \u2500\u2500 *\/\n  [data-reveal] { opacity:0; transform:translateY(24px); transition:opacity 0.6s ease, transform 0.6s ease; }\n  [data-reveal].visible { opacity:1; transform:translateY(0); }\n\n  \/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n  @media (max-width:900px) {\n    .hero .wrap { grid-template-columns:1fr; gap:32px; }\n    .features-grid { grid-template-columns:repeat(2,1fr); }\n    .events-grid { grid-template-columns:1fr; }\n    .ai-grid { grid-template-columns:1fr; }\n    .stats-grid { grid-template-columns:repeat(2,1fr); }\n    .stat-item { padding:16px; border-right:none; border-bottom:1px solid var(--border); }\n    .changelog-item { grid-template-columns:1fr; gap:6px; }\n    .canvas-wrap { max-width:480px; width:100%; }\n  }\n  @media (max-width:600px) {\n    .wrap { padding:0 16px; }\n    .hero { padding:48px 0 36px; min-height:auto; }\n    .hero h1 { font-size:clamp(44px,16vw,72px); letter-spacing:-1px; }\n    .hero-desc { font-size:15px; }\n    .hero-btns { flex-direction:column; }\n    .hero-btns .btn { width:100%; justify-content:center; }\n    .section { padding:64px 0; }\n    .agents-section { padding:64px 0; }\n    .section-header { flex-direction:column; gap:4px; margin-bottom:36px; }\n    .features-grid { grid-template-columns:1fr; }\n    .agents-grid { grid-template-columns:1fr 1fr; }\n    .canvas-wrap { max-width:100%; }\n    .stats-grid { grid-template-columns:1fr 1fr; }\n  }\n<\/style>\n<\/head>\n<body>\n\n<!-- \u2500\u2500 HERO \u2500\u2500 -->\n<section class=\"hero\">\n  <div class=\"wrap\">\n    <div class=\"hero-left\">\n      <div class=\"hero-tag\">AI Town Simulation \u00b7 v3.6.1 \u00b7 Free to Play<\/div>\n      <h1>Rim<span>Town<\/span><\/h1>\n      <div class=\"hero-sub\">\/\/ RIMTOWN \u00b7 EVERY RESIDENT IS AN AUTONOMOUS AI AGENT<\/div>\n      <p class=\"hero-desc\">\n        A RimWorld-inspired AI town simulation. Every resident has <strong>independent thought, memory &#038; emotion<\/strong>, driven by LLMs \u2014 they fall in love, vote in elections, start feuds, and die, each leaving their own story behind.\n      <\/p>\n      <div class=\"hero-btns\">\n        <a href=\"https:\/\/rimtown.cc\/?page_id=7\" class=\"btn btn-primary\">\u25b6 ENTER RIMTOWN<\/a>\n        <a href=\"#features\" class=\"btn btn-ghost\">Explore Features \u2193<\/a>\n      <\/div>\n      <div class=\"ai-providers-mini\">\n        <span class=\"ai-label\">Powered by:<\/span>\n        <span class=\"ai-chip free\">Groq Free<\/span>\n        <span class=\"ai-chip\">Claude<\/span>\n        <span class=\"ai-chip\">GPT<\/span>\n        <span class=\"ai-chip\">Gemini<\/span>\n        <span class=\"ai-chip\">DeepSeek<\/span>\n        <span class=\"ai-chip\">MiniMax<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"hero-right\">\n      <div class=\"canvas-wrap\">\n        <div class=\"canvas-header\">\n          <div class=\"canvas-dots\">\n            <div class=\"canvas-dot\"><\/div>\n            <div class=\"canvas-dot\"><\/div>\n            <div class=\"canvas-dot\"><\/div>\n          <\/div>\n          <span>RIMTOWN \/\/ LIVE VIEW<\/span>\n          <span id=\"canvas-time\">DAY 1<\/span>\n        <\/div>\n        <canvas id=\"townCanvas\"><\/canvas>\n        <div class=\"canvas-overlay\"><\/div>\n        <div class=\"canvas-scanline\"><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<\/section>\n\n<div style=\"display:flex!important;align-items:center!important;gap:16px!important;overflow:hidden!important;border-top:1px solid #2a3040!important;border-bottom:1px solid #2a3040!important;background:#111318!important;padding:12px 24px!important;position:relative!important;z-index:100!important;width:100%!important;max-width:100%!important;margin:0!important;float:none!important;clear:both!important;box-sizing:border-box!important;\">\n  <div style=\"display:flex!important;gap:40px!important;animation:rtscroll 28s linear infinite!important;white-space:nowrap!important;\">\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Elara<\/strong> harvested wheat at the farm<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Dax<\/strong> told <strong style=\"color:#d4e0cc\">Mira<\/strong> a secret about <strong style=\"color:#d4e0cc\">Gorn<\/strong><\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Dr. Yeva<\/strong> healed <strong style=\"color:#d4e0cc\">Ruben<\/strong>&#8216;s broken arm<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\u26a1 Bandit raid alert \u2014 all residents evacuating<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Lars<\/strong> and <strong style=\"color:#d4e0cc\">Noa<\/strong> became close friends<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Balu<\/strong> cooked smoked rabbit stew<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\ud83d\uddf3\ufe0f <strong style=\"color:#d4e0cc\">Mayor election<\/strong> begins \u2014 Chen vs. Zhao<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Liu<\/strong> confessed his feelings to <strong style=\"color:#d4e0cc\">Wang<\/strong><\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\ud83c\udfaa <strong style=\"color:#d4e0cc\">Midsummer Bonfire Festival<\/strong> \u2014 everyone skipped work<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\ud83d\udd2c <strong style=\"color:#d4e0cc\">Dr. Sable<\/strong> completed battery research<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Elara<\/strong> harvested wheat at the farm<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Dax<\/strong> told <strong style=\"color:#d4e0cc\">Mira<\/strong> a secret about <strong style=\"color:#d4e0cc\">Gorn<\/strong><\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\"><strong style=\"color:#d4e0cc\">Dr. Yeva<\/strong> healed <strong style=\"color:#d4e0cc\">Ruben<\/strong>&#8216;s broken arm<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\u26a1 Bandit raid alert \u2014 all residents evacuating<\/span>\n    <span style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:#6b7a6b\">\ud83d\uddf3\ufe0f <strong style=\"color:#d4e0cc\">Mayor election<\/strong> begins \u2014 Chen vs. Zhao<\/span>\n  <\/div>\n<\/div>\n<style>@keyframes rtscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}<\/style>\n\n<!-- \u2500\u2500 FEATURES \u2500\u2500 -->\n<section class=\"section\" id=\"features\">\n  <div class=\"wrap\">\n    <div class=\"section-header\" data-reveal>\n      <span class=\"section-num\">01 \/<\/span>\n      <h2 class=\"section-title\">Core Systems<\/h2>\n    <\/div>\n    <p class=\"section-desc\" data-reveal>Over 30 interconnected systems build a living, breathing AI-driven society \u2014 from farming to romance, from politics to generational legacy.<\/p>\n    <div class=\"features-grid\">\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83e\udde0<\/span>\n        <div class=\"feature-name\">Autonomous AI Residents<\/div>\n        <p class=\"feature-desc\">Every resident is powered by LLMs with unique personality, memory, and mood. A compatibility system makes like-minded NPCs naturally bond \u2014 and clashing ones build lasting tension.<\/p>\n        <span class=\"feature-tag new\">CORE<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83d\udc95<\/span>\n        <div class=\"feature-name\">Romance &#038; Generational Legacy<\/div>\n        <p class=\"feature-desc\">Flirt, confess, propose, marry, have children. Kids inherit parents&#8217; traits, and the generational system lets your story continue across multiple lifetimes.<\/p>\n        <span class=\"feature-tag new\">NEW v3.2<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83c\udf3e<\/span>\n        <div class=\"feature-name\">Farm \u00d7 Factory Supply Chain<\/div>\n        <p class=\"feature-desc\">13 crops grown by season, 7 factories (bakery, brewery, tea house, etc.) to process them. Four industries \u2014 logging, quarrying, farming, mining \u2014 form a complete supply chain.<\/p>\n        <span class=\"feature-tag new\">NEW v3.0<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83d\udcd6<\/span>\n        <div class=\"feature-name\">NPC Personal Story Arcs<\/div>\n        <p class=\"feature-desc\">12 residents each have 2\u20133 personal side quests that unlock through affection. The blacksmith&#8217;s heartache, an unsent love letter, the old miner&#8217;s secret\u2026 everyone has a story.<\/p>\n        <span class=\"feature-tag new\">NEW v3.6<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83d\uddf3\ufe0f<\/span>\n        <div class=\"feature-name\">Elections &#038; Dynamic Events<\/div>\n        <p class=\"feature-desc\">Mayor elections feature 6 policy platforms with 30-day effects. Locust plagues, disease outbreaks, bandit sieges \u2014 crises trigger mid-story and every one demands a decision.<\/p>\n        <span class=\"feature-tag\">EVENT<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83c\udfad<\/span>\n        <div class=\"feature-name\">Multi-Path Story \u00d7 4 Endings<\/div>\n        <p class=\"feature-desc\">5 chapters, 12 main quests \u2014 each with 2\u20134 completion routes (gather \/ socialize \/ build). End with a Prosperous, Peaceful, Legendary, or Personal finale.<\/p>\n        <span class=\"feature-tag new\">NEW v3.1<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83d\udcf0<\/span>\n        <div class=\"feature-name\">AI Daily Town Newspaper<\/div>\n        <p class=\"feature-desc\">A random NPC acts as journalist and auto-generates a daily paper: headlines, town briefs, neighborhood gossip. Every love and grudge gets documented.<\/p>\n        <span class=\"feature-tag new\">NEW v3.0<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83d\uddfa\ufe0f<\/span>\n        <div class=\"feature-name\">Exploration \u00d7 NPC Life &#038; Death<\/div>\n        <p class=\"feature-desc\">6 explorable zones \u2014 send expeditions for rare resources. NPCs age, fall ill, and die, buried in a graveyard with epitaphs. A faction system lets residents form their own social cliques.<\/p>\n        <span class=\"feature-tag new\">NEW v2.2<\/span>\n      <\/div>\n      <div class=\"feature-card\" data-reveal>\n        <span class=\"feature-icon\">\ud83c\udfc6<\/span>\n        <div class=\"feature-name\">99 Achievements \u00d7 Cloud Saves<\/div>\n        <p class=\"feature-desc\">7 categories, 99 achievements covering every corner of the game. Account system with cross-device cloud sync \u2014 up to 20 towns per account.<\/p>\n        <span class=\"feature-tag new\">v3.2.1<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 AGENTS \u2500\u2500 -->\n<section class=\"agents-section\" id=\"agents\">\n  <div class=\"wrap\">\n    <div class=\"section-header\" data-reveal>\n      <span class=\"section-num\">02 \/<\/span>\n      <h2 class=\"section-title\">Meet the Residents<\/h2>\n    <\/div>\n    <p style=\"color:var(--muted);font-size:14px;margin-bottom:36px;max-width:520px;margin-top:-44px\" data-reveal>\n      Every resident is an independent AI entity with their own job, personality, and daily rhythm. They remember what you say and form opinions \u2014 good or bad.\n    <\/p>\n    <div class=\"agents-grid\">\n      <div class=\"agent-card\" data-reveal>\n        <div class=\"agent-status\"><span class=\"status-dot\"><\/span> ACTIVE<\/div>\n        <div class=\"agent-name\">Elara<\/div>\n        <div class=\"agent-job\">\/\/ FARMER \u00b7 HERBALIST<\/div>\n        <div class=\"agent-traits\">\n          <span class=\"trait\">Kind<\/span><span class=\"trait\">Hardworking<\/span><span class=\"trait\">Introverted<\/span>\n        <\/div>\n        <div class=\"agent-mood\">\n          <div class=\"mood-label\">MOOD \u25b8 CONTENT (72)<\/div>\n          <div class=\"mood-bar\"><div class=\"mood-fill\" style=\"width:72%\"><\/div><\/div>\n        <\/div>\n        <div class=\"agent-speech\">&#8220;The wheat&#8217;s growing so well today. Want to try a slice of my fresh bread?&#8221;<\/div>\n      <\/div>\n      <div class=\"agent-card\" data-reveal>\n        <div class=\"agent-status\"><span class=\"status-dot\"><\/span> SOCIALIZING<\/div>\n        <div class=\"agent-name\">Dax<\/div>\n        <div class=\"agent-job\">\/\/ MINER \u00b7 SCOUT<\/div>\n        <div class=\"agent-traits\">\n          <span class=\"trait\">Reckless<\/span><span class=\"trait\">Loyal<\/span><span class=\"trait\">Curious<\/span>\n        <\/div>\n        <div class=\"agent-mood\">\n          <div class=\"mood-label\">MOOD \u25b8 STRESSED (38)<\/div>\n          <div class=\"mood-bar\"><div class=\"mood-fill\" style=\"width:38%;background:var(--accent3)\"><\/div><\/div>\n        <\/div>\n        <div class=\"agent-speech\">&#8220;I saw strange lights on the north hill last night. I think we should investigate.&#8221;<\/div>\n      <\/div>\n      <div class=\"agent-card\" data-reveal>\n        <div class=\"agent-status\"><span class=\"status-dot\" style=\"background:var(--accent2)\"><\/span> RESEARCHING<\/div>\n        <div class=\"agent-name\">Dr. Yeva<\/div>\n        <div class=\"agent-job\">\/\/ DOCTOR \u00b7 RESEARCHER<\/div>\n        <div class=\"agent-traits\">\n          <span class=\"trait\">Analytical<\/span><span class=\"trait\">Empathetic<\/span><span class=\"trait\">Stubborn<\/span>\n        <\/div>\n        <div class=\"agent-mood\">\n          <div class=\"mood-label\">MOOD \u25b8 FOCUSED (85)<\/div>\n          <div class=\"mood-bar\"><div class=\"mood-fill\" style=\"width:85%;background:var(--accent2)\"><\/div><\/div>\n        <\/div>\n        <div class=\"agent-speech\">&#8220;I&#8217;m developing a cure for winter fever. Still need three moonflowers.&#8221;<\/div>\n      <\/div>\n      <div class=\"agent-card\" data-reveal>\n        <div class=\"agent-status\"><span class=\"status-dot\" style=\"background:var(--accent3)\"><\/span> RESTING<\/div>\n        <div class=\"agent-name\">Balu<\/div>\n        <div class=\"agent-job\">\/\/ COOK \u00b7 CRAFTER<\/div>\n        <div class=\"agent-traits\">\n          <span class=\"trait\">Cheerful<\/span><span class=\"trait\">Creative<\/span><span class=\"trait\">Gossiper<\/span>\n        <\/div>\n        <div class=\"agent-mood\">\n          <div class=\"mood-label\">MOOD \u25b8 HAPPY (90)<\/div>\n          <div class=\"mood-bar\"><div class=\"mood-fill\" style=\"width:90%\"><\/div><\/div>\n        <\/div>\n        <div class=\"agent-speech\">&#8220;I heard the mayor had a fight with the blacksmith? I need to tell absolutely everyone\u2026&#8221;<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 EVENTS \u2500\u2500 -->\n<section class=\"events-section\" id=\"events\">\n  <div class=\"wrap\">\n    <div class=\"section-header\" data-reveal>\n      <span class=\"section-num\">03 \/<\/span>\n      <h2 class=\"section-title\">Dynamic Event System<\/h2>\n    <\/div>\n    <p class=\"section-desc\" data-reveal>30+ random events make every playthrough unique \u2014 no two games are ever the same.<\/p>\n    <div class=\"events-grid\" data-reveal>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\ud83d\uddf3\ufe0f<\/div>\n        <div>\n          <div class=\"event-name\">Democratic Mayor Election<\/div>\n          <div class=\"event-type\">POLITICAL EVENT<\/div>\n          <p class=\"event-desc\">6 policy platforms (economy \/ welfare \/ military \/ culture \/ conservation \/ freedom). Residents vote by relationship, values, and charisma. Winning policy shapes the town for 30 days.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\u2694\ufe0f<\/div>\n        <div>\n          <div class=\"event-name\">Chapter 3 Crisis System<\/div>\n          <div class=\"event-type\">CRISIS EVENT<\/div>\n          <p class=\"event-desc\">Locust swarms, bandit sieges, and plagues trigger randomly as the story progresses. Every crisis demands a town-wide decision \u2014 and none are easy.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\ud83c\udfaa<\/div>\n        <div>\n          <div class=\"event-name\">Seasonal Festivals<\/div>\n          <div class=\"event-type\">FESTIVAL EVENT<\/div>\n          <p class=\"event-desc\">Spring Festival, Midsummer Bonfire, Harvest Feast, Winter Solstice \u2014 each with special quests, and NPCs who ditch work to dance in the square.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\ud83d\udd25<\/div>\n        <div>\n          <div class=\"event-name\">NPC Relationship Chain Events<\/div>\n          <div class=\"event-type\">SOCIAL EVENT<\/div>\n          <p class=\"event-desc\">Fights, hospitalizations, crop sabotage, caught cheating \u2014 high-hatred NPCs may come to blows, gossip spreads instantly, and factions pick sides.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\ud83d\udcd6<\/div>\n        <div>\n          <div class=\"event-name\">7 Automatic Story Events<\/div>\n          <div class=\"event-type\">STORY EVENT<\/div>\n          <p class=\"event-desc\">&#8220;The First Night,&#8221; &#8220;First Harvest,&#8221; &#8220;Storm Ahead,&#8221; &#8220;You&#8217;re One of Us\u2026&#8221; \u2014 immersive story moments unfold without warning, presented as 8-second toast notifications.<\/p>\n        <\/div>\n      <\/div>\n      <div class=\"event-card\">\n        <div class=\"event-icon-box\">\ud83d\udc74<\/div>\n        <div>\n          <div class=\"event-name\">NPC Aging, Death &#038; Succession<\/div>\n          <div class=\"event-type\">LIFE CYCLE<\/div>\n          <p class=\"event-desc\">NPCs age each season and can die from old age, illness, or accident \u2014 buried in the graveyard with epitaphs. Your children inherit affection memories and begin the next generation&#8217;s story.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 AI SECTION \u2500\u2500 -->\n<section class=\"ai-section\" id=\"ai\">\n  <div class=\"wrap\">\n    <div class=\"section-header\" data-reveal>\n      <span class=\"section-num\">04 \/<\/span>\n      <h2 class=\"section-title\">Choose Your AI Engine<\/h2>\n    <\/div>\n    <div class=\"ai-grid\" data-reveal>\n      <div>\n        <div class=\"ai-provider\">\n          <span class=\"ai-provider-icon\">\ud83e\udd16<\/span>\n          <div>\n            <div class=\"ai-provider-name\">None (Simulated Dialogue)<\/div>\n            <div class=\"ai-provider-desc\">Pre-written scripts, no API key needed<\/div>\n          <\/div>\n          <span class=\"ai-provider-badge badge-free\">FREE<\/span>\n        <\/div>\n        <div class=\"ai-provider\">\n          <span class=\"ai-provider-icon\">\u26a1<\/span>\n          <div>\n            <div class=\"ai-provider-name\">Groq (Recommended)<\/div>\n            <div class=\"ai-provider-desc\">Qwen3-32B \u2014 fast, free, excellent dialogue quality<\/div>\n          <\/div>\n          <span class=\"ai-provider-badge badge-free\">FREE<\/span>\n        <\/div>\n        <div class=\"ai-provider\">\n          <span class=\"ai-provider-icon\">\ud83e\udde0<\/span>\n          <div>\n            <div class=\"ai-provider-name\">Anthropic Claude<\/div>\n            <div class=\"ai-provider-desc\">Best for roleplay and narrative generation<\/div>\n          <\/div>\n          <span class=\"ai-provider-badge badge-key\">API KEY<\/span>\n        <\/div>\n        <div class=\"ai-provider\">\n          <span class=\"ai-provider-icon\">\u2728<\/span>\n          <div>\n            <div class=\"ai-provider-name\">OpenAI GPT \/ Google Gemini<\/div>\n            <div class=\"ai-provider-desc\">Reliable, well-rounded dialogue<\/div>\n          <\/div>\n          <span class=\"ai-provider-badge badge-key\">API KEY<\/span>\n        <\/div>\n        <div class=\"ai-provider\">\n          <span class=\"ai-provider-icon\">\ud83c\udf0a<\/span>\n          <div>\n            <div class=\"ai-provider-name\">DeepSeek \/ MiniMax<\/div>\n            <div class=\"ai-provider-desc\">More AI provider options<\/div>\n          <\/div>\n          <span class=\"ai-provider-badge badge-key\">API KEY<\/span>\n        <\/div>\n      <\/div>\n      <div>\n        <div class=\"ai-tip\">\n          <div class=\"ai-tip-title\">\u25b6 How to Get Started<\/div>\n          <p>You can jump right in without any API key \u2014 the game will use built-in simulated dialogue.<\/p>\n          <br>\n          <p>\u60f3\u8b93\u5c45\u6c11\u8aaa\u8a71\u66f4\u81ea\u7136\uff0c\u5efa\u8b70\u7533\u8acb <strong style=\"color:var(--accent)\">Groq Free API<\/strong>\uff0c\u5728\u904a\u6232\u8a2d\u5b9a\u4e2d\u8cbc\u4e0a\u91d1\u9470\u5373\u53ef\u7acb\u5373\u751f\u6548\u3002<\/p>\n          <br>\n          <p>The game supports a backup Groq key \u2014 it auto-switches when your main AI hits rate limits, keeping the experience seamless.<\/p>\n        <\/div>\n        <div style=\"margin-top:16px;padding:20px;background:var(--panel);border:1px solid var(--border)\">\n          <div style=\"font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:2px;margin-bottom:12px\">RATE LIMITS<\/div>\n          <div style=\"font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--text);line-height:2\">\n            All providers: 20 requests\/min<br>\n            Auto-fallback to backup Groq on failure<br>\n            Auto-returns to primary when recovered\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 STATS \u2500\u2500 -->\n<div class=\"stats-bar\" data-reveal>\n  <div class=\"wrap\">\n    <div class=\"stats-grid\">\n      <div class=\"stat-item\">\n        <div class=\"stat-num\">99<\/div>\n        <div class=\"stat-label\">Achievements<\/div>\n      <\/div>\n      <div class=\"stat-item\">\n        <div class=\"stat-num\">30+<\/div>\n        <div class=\"stat-label\">Unique Systems<\/div>\n      <\/div>\n      <div class=\"stat-item\">\n        <div class=\"stat-num\">7+<\/div>\n        <div class=\"stat-label\">AI Providers<\/div>\n      <\/div>\n      <div class=\"stat-item\">\n        <div class=\"stat-num\">4<\/div>\n        <div class=\"stat-label\">Story Endings<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- \u2500\u2500 CHANGELOG \u2500\u2500 -->\n<section class=\"changelog-section\" id=\"changelog\">\n  <div class=\"wrap\">\n    <div class=\"section-header\" data-reveal>\n      <span class=\"section-num\">05 \/<\/span>\n      <h2 class=\"section-title\">Changelog<\/h2>\n    <\/div>\n    <p class=\"section-desc\" data-reveal>RimTown is in rapid development \u2014 new systems and fixes nearly every day.<\/p>\n    <div class=\"changelog-list\" data-reveal>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.6.1<\/div><div class=\"changelog-date\">2026-03-14<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">Fix mobile login state loss \/ Cache-Control headers<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-fix\">BUG FIX<\/span><span class=\"ctag ctag-ui\">Mobile<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.6.0<\/div><div class=\"changelog-date\">2026-03-14<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">11 \u500b\u652f\u7dda\u4efb\u52d9 \/ \u6bcf\u65e5\u76ee\u6a19\u7cfb\u7d71 \/ 7 \u500b\u6545\u4e8b\u4e8b\u4ef6 \/ NPC Personal Story Arcs<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">MAJOR<\/span><span class=\"ctag ctag-sys\">Story<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.5.0<\/div><div class=\"changelog-date\">2026-03-14<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">Chat Bubble Fixes \/ NPC Sleep Animation \/ Walk Speed \/ Quest Guide Banner<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-ui\">UI<\/span><span class=\"ctag ctag-new\">NEW<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.4.0<\/div><div class=\"changelog-date\">2026-03-14<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">5-Step Tutorial \/ NPC Schedule System \/ Night Visuals Overhaul \/ Moon + 80 Stars<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">NEW<\/span><span class=\"ctag ctag-ui\">Visual<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.1.0<\/div><div class=\"changelog-date\">2026-03-10<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">\u591a\u8def\u7ddaStory \/ Prosperity\u7cfb\u7d71 \/ NPC Personal Story Arcs \/ \u81ea\u8a02 NPC \/ \u591a\u7d50\u5c40\u7cfb\u7d71<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">MAJOR<\/span><span class=\"ctag ctag-sys\">Story<\/span><span class=\"ctag ctag-sys\">Prosperity<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v3.0.0<\/div><div class=\"changelog-date\">2026-03-10<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">\u56db\u5927Industry \/ \u8fb2\u5834\u7a2e\u690d \/ \u5de5\u5ee0\u52a0\u5de5 \/ AI Newspaper \/ NPC Relationship Chain Events<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">MAJOR<\/span><span class=\"ctag ctag-sys\">Industry<\/span><span class=\"ctag ctag-sys\">Newspaper<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v2.2.0<\/div><div class=\"changelog-date\">2026-03-09<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">Faction System \/ Seasonal Festivals \/ NPC Life Cycle \/ Exploration System<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">MAJOR<\/span><span class=\"ctag ctag-sys\">Social<\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"changelog-item\">\n        <div><div class=\"changelog-ver\">v2.0.0<\/div><div class=\"changelog-date\">2026-03-09<\/div><\/div>\n        <div>\n          <div class=\"changelog-title\">Account System \/ Cloud Saves \/ 57 Achievements \/ NPC Chat Bubbles \/ Player Jobs<\/div>\n          <div class=\"changelog-tags\"><span class=\"ctag ctag-new\">MAJOR<\/span><span class=\"ctag ctag-sys\">Account<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 CTA \u2500\u2500 -->\n<section class=\"cta-section\">\n  <div class=\"wrap\">\n    <div class=\"cta-label\" data-reveal>\u25b8 FREE TO PLAY \u00b7 NO DOWNLOAD \u00b7 RUNS IN BROWSER<\/div>\n    <h2 class=\"cta-title\" data-reveal>Ready to begin your journey?<br><em>RimTown<\/em> awaits<\/h2>\n    <p class=\"cta-desc\" data-reveal>No install, no cost. Pick an AI engine or use simulation mode \u2014 your story starts now.<\/p>\n    <div class=\"hero-btns\" style=\"justify-content:center\" data-reveal>\n      <a href=\"https:\/\/rimtown.cc\/?page_id=7\" class=\"btn btn-primary\">\u25b6 ENTER RIMTOWN<\/a>\n      <a href=\"https:\/\/github.com\/virus11456\/RimTown\" class=\"btn btn-ghost\">GitHub \u2197<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2500\u2500 FOOTER \u2500\u2500 -->\n<footer>\n  <div class=\"wrap\">\n    <div class=\"footer-inner\">\n      <div class=\"footer-brand\">\n        RIMTOWN\n        <span>AI TOWN SIMULATION \u00b7 v3.6.1<\/span>\n      <\/div>\n      <nav class=\"footer-links\">\n        <a href=\"https:\/\/rimtown.cc\/?page_id=7\">Play Now<\/a>\n        <a href=\"#features\">Features<\/a>\n        <a href=\"#events\">Events<\/a>\n        <a href=\"#changelog\">Changelog<\/a>\n        <a href=\"https:\/\/github.com\/virus11456\/RimTown\">GitHub<\/a>\n      <\/nav>\n    <\/div>\n  <\/div>\n<\/footer>\n\n<script>\n  const els = document.querySelectorAll('[data-reveal]');\n  const obs = new IntersectionObserver((entries) => {\n    entries.forEach((e, i) => {\n      if (e.isIntersecting) {\n        setTimeout(() => e.target.classList.add('visible'), i * 80);\n        obs.unobserve(e.target);\n      }\n    });\n  }, { threshold: 0.08 });\n  els.forEach(el => obs.observe(el));\n<\/script>\n\n<script>\n\/\/ \u78ba\u4fdd canvas \u5728 JS \u8f09\u5165\u524d\u5df2\u8a2d\u5b9a\u597d\u5c3a\u5bf8\n(function() {\n  function initCanvas() {\n    var canvas = document.getElementById('townCanvas');\n    if (!canvas) return;\n    \/\/ canvas.js sets 448x448, CSS uses width:100% \u2014 just ensure parent has width\n    var wrap = canvas.closest('.canvas-wrap');\n    if (wrap && wrap.offsetWidth === 0) {\n      wrap.style.minWidth = '300px';\n    }\n\n    \/\/ Update header time display\n    var tick = 0;\n    setInterval(function() {\n      tick++;\n      var day = Math.floor(tick \/ 300) + 1;\n      var hour = Math.floor((tick % 300) \/ 12.5);\n      var el = document.getElementById('canvas-time');\n      if (el) el.textContent = 'DAY ' + day + '  ' + String(hour).padStart(2, '0') + ':00';\n    }, 100);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initCanvas);\n  } else {\n    initCanvas();\n  }\n})();\n<\/script>\n<script src=\"\/wp-content\/themes\/astra\/js\/rimtown-canvas.js\"><\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>RimTown \u2014 AI Town Si [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"disabled","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-16","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/pages\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rimtown.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16"}],"version-history":[{"count":21,"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/pages\/16\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/rimtown.cc\/index.php?rest_route=\/wp\/v2\/pages\/16\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/rimtown.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}