:root{--ink:#1d1530;--brand:#4b1d8f;--brand-2:#6c2bd9;--sand:#f6f1ea;--card:#fff;--muted:#6b6280;--ok:#2b8a3e;--warn:#e8590c}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);touch-action:none;background:#2d1b4e;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#game{position:fixed;inset:0}#game canvas{display:block}#join{background:radial-gradient(circle at 30% 20%,#6c2bd9 0%,#2d1b4e 60%);place-items:center;padding:16px;display:grid;position:fixed;inset:0}#join[hidden]{display:none}#join-form{background:var(--card);border-radius:20px;width:100%;max-width:360px;padding:24px;box-shadow:0 20px 60px #00000059}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-2);margin:0;font-size:12px;font-weight:700}h1{letter-spacing:-.02em;margin:4px 0 0;font-size:36px}.tagline{color:var(--muted);margin:4px 0 20px}label,legend{margin-bottom:6px;font-size:14px;font-weight:600;display:block}input{width:100%;font:inherit;border:2px solid #ddd5ea;border-radius:12px;padding:12px 14px}input:focus{border-color:var(--brand-2);outline:none}fieldset{border:0;margin:16px 0 20px;padding:0}#colors{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;padding:0}.swatch[aria-checked=true]{border-color:var(--ink);box-shadow:inset 0 0 0 2px #fff}#play{width:100%;font:inherit;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:14px;padding:14px;font-size:18px;font-weight:700}#play:disabled{opacity:.6;cursor:progress}#join-error{color:#c92a2a;min-height:1.4em;margin:10px 0 0;font-size:14px}.fine{color:var(--muted);margin:8px 0 0;font-size:12px}#hud{top:max(10px, env(safe-area-inset-top));pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:fixed;left:10px;right:10px}#hud[hidden],#help[hidden]{display:none}#hud span{background:#ffffffeb;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;box-shadow:0 2px 8px #00000026}#hud span#hud-coins{letter-spacing:-.03em;color:#1d1530;background:#fff8e1;padding:8px 16px;font-size:30px;font-weight:800}@media (width<=720px){#hud span#hud-coins{padding:6px 14px;font-size:28px}}#hud .status.ok{color:var(--ok)}#hud .status.warn{color:var(--warn)}#help{bottom:max(12px, env(safe-area-inset-bottom));color:#fff;white-space:nowrap;pointer-events:none;text-overflow:ellipsis;z-index:4;background:#1d1530cc;border-radius:999px;max-width:calc(100% - 32px);margin:0;padding:10px 16px;font-size:16px;font-weight:700;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}#plot-card{z-index:6;left:50%;bottom:max(56px, calc(env(safe-area-inset-bottom) + 48px));background:var(--card);width:min(420px,100% - 20px);color:var(--ink);border-radius:18px;padding:14px 16px 16px;position:fixed;transform:translate(-50%);box-shadow:0 16px 40px #0000004d}#plot-card[hidden]{display:none}#plot-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:24px;line-height:1;position:absolute;top:8px;right:8px}#plot-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);margin:0;font-size:12px;font-weight:700}#plot-title{margin:2px 48px 0 0;font-size:28px}#plot-price{margin:4px 0 0;font-size:18px;font-weight:700}#plot-note{color:var(--muted);margin:6px 0 0;font-size:13px}#plot-error{color:#c92a2a;min-height:1.2em;margin:8px 0 0;font-size:14px}#plot-buy,#plot-borrow,#plot-repay,#plot-build{width:100%;font:inherit;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:14px;margin-top:8px;padding:12px;font-size:17px;font-weight:700}#plot-borrow{background:#37474f}#plot-repay{background:var(--ok)}#plot-build{background:#8a5a12}#plot-buy:disabled,#plot-borrow:disabled,#plot-repay:disabled,#plot-build:disabled{color:var(--muted);cursor:not-allowed;background:#d9d3e6}#plot-buy{border-radius:18px;min-height:72px;padding:18px 16px;font-size:28px;line-height:1.1}#plot-buy[hidden],#plot-borrow[hidden],#plot-repay[hidden],#plot-build[hidden]{display:none}#history li[data-kind=loan]{color:#37474f}#history li[data-kind=repay]{color:var(--ok)}#history li[data-kind=seize]{color:var(--warn)}#plot-rates{color:var(--ink);margin:4px 0 0;font-size:14px}#history{z-index:5;top:max(52px, calc(env(safe-area-inset-top) + 46px));width:min(220px,100% - 20px);max-height:min(240px,34vh);color:var(--ink);background:#fffffff0;border-radius:14px;padding:8px 10px 10px;position:fixed;right:10px;overflow:auto;box-shadow:0 8px 24px #0000002e}@media (width<=720px){#history{top:max(108px, calc(env(safe-area-inset-top) + 100px));max-height:min(180px,28vh)}}#history[hidden]{display:none}#history h2{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);margin:0 0 4px;font-size:12px}#history ol{margin:0;padding:0;list-style:none}#history li{padding:2px 0;font-size:13px;font-weight:600}#history li[data-kind=rent]{color:var(--ok)}#history li[data-kind=upkeep]{color:var(--warn)}#history li[data-kind=reset]{color:var(--muted)}#history li[data-kind=sale]{color:var(--brand)}#deals{z-index:5;top:max(52px, calc(env(safe-area-inset-top) + 46px));width:min(280px,100% - 20px);max-height:min(320px,46vh);color:var(--ink);background:#fffffff0;border-radius:14px;padding:8px 10px 10px;position:fixed;left:10px;overflow:auto;box-shadow:0 8px 24px #0000002e}#deals[hidden]{display:none}#deals h2{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);margin:0 0 4px;font-size:12px}.deal{border-top:1px solid #eee6f7;padding:8px 0 4px}.deal p{margin:0 0 6px;font-size:13px;font-weight:600}.deal-actions,#plot-offer,#deal-chat-form{gap:6px;display:flex}.deal-actions input,.deal-actions select,#plot-offer input,#deal-chat{min-width:0;font:inherit;border:2px solid #ddd5ea;border-radius:10px;flex:1;padding:8px 10px}.deal button,#plot-offer button,#deal-chat-form button,#plot-accept{font:inherit;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:8px 10px;font-size:14px;font-weight:700}.deal button.ghost{color:var(--ink);background:#efeaf8}#plot-offer{margin-top:8px}#plot-offer[hidden],#plot-accept[hidden]{display:none}#plot-accept{width:100%;margin-top:8px}#deal-chat-form{margin-top:8px}#deal-note{min-height:1.2em;color:var(--muted);margin:6px 0 0;font-size:12px}#board-open{z-index:6;left:10px;bottom:max(12px, env(safe-area-inset-bottom));font:inherit;color:var(--brand);cursor:pointer;background:#fff;border:0;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;position:fixed;box-shadow:0 2px 8px #0003}#board-open[hidden],#board[hidden]{display:none}#board{z-index:7;left:50%;top:max(56px, calc(env(safe-area-inset-top) + 48px));background:var(--card);width:min(420px,100% - 20px);max-height:min(70vh,560px);color:var(--ink);border-radius:18px;padding:14px 16px 16px;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 16px 40px #0000004d}#board h2{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-2);margin:10px 0 4px;font-size:12px}#board h2:first-of-type{margin-top:0}#board ol{margin:0;padding-left:18px}#board li{font-size:14px;font-weight:600}#profile-line{margin:0;font-size:14px}#board-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:24px;line-height:1;position:absolute;top:8px;right:8px}.deal-chat{margin:0;padding:0;list-style:none}.deal-chat li{padding:1px 0;font-size:13px}
