:root{--bg: #faf7f2;--card: #ffffff;--ink: #3a3531;--muted: #7a726b;--accent: #c97b5a;--accent-ink: #ffffff;--border: #e7e0d8;--danger: #b3452f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,Noto Sans TC,Hiragino Kaku Gothic ProN,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;line-height:1.7}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:420px;box-shadow:0 6px 24px #3a35310f}.card--wide{max-width:640px}h1{font-size:1.4rem;margin:0 0 8px}h2{font-size:1.1rem;margin:24px 0 8px}p{color:var(--muted);margin:0 0 16px}label{display:block;font-size:.9rem;margin:16px 0 6px;color:var(--ink)}input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:1rem;background:#fff;color:var(--ink)}input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{display:inline-block;width:100%;padding:12px 16px;border:none;border-radius:10px;font-size:1rem;cursor:pointer;margin-top:20px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--border)}.btn-row{display:flex;gap:12px}.btn-row .btn{margin-top:0}.error{color:var(--danger);font-size:.9rem;margin-top:16px}.scopes{list-style:none;padding:0;margin:12px 0}.scopes li{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;color:var(--ink)}.muted-small{font-size:.8rem;color:var(--muted)}a{color:var(--accent)}.prose h2,.prose p,.prose li{color:var(--ink)}.game-shell{min-height:100vh;background:#f3f1ec;color:#292724;padding:0 0 48px}.game-topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,4vw,56px);background:#232421;color:#fff;border-bottom:1px solid #3d3e39}.game-brand{font-size:.82rem;font-weight:800;letter-spacing:.18em}.game-subtitle{margin-top:2px;color:#c7c4bc;font-size:.8rem}.game-top-actions{display:flex;gap:12px}.game-link-btn{border:0;padding:6px 0;background:transparent;color:#ddd9cf;cursor:pointer;font:inherit;font-size:.82rem}.game-layout{width:min(1180px,calc(100% - 32px));margin:28px auto 0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.game-main,.game-side{display:grid;gap:16px}.game-panel{background:#fff;border:1px solid #dedbd3;border-radius:14px;padding:clamp(18px,3vw,30px);box-shadow:0 5px 18px #2625220b}.game-panel--hero{background:#2f322e;color:#fff;border-color:#2f322e}.game-panel--hero h1{color:#fff;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.25;margin-top:4px}.game-panel--hero p{max-width:760px;color:#d9d8d1}.game-kicker{color:#9a694e;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:800}.game-panel--hero .game-kicker{color:#e1aa82}.game-status-row{display:flex;gap:8px;flex-wrap:wrap}.game-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;background:#e8e5de;border-radius:999px;color:#4f4d48;font-size:.78rem;font-weight:700}.game-chip--urgent{background:#f0dfd4;color:#8b4f34}.game-notice{border-left:4px solid #a86e4e;background:#fff7f1;color:#5a4436;padding:12px 14px;border-radius:8px;font-size:.92rem}.npc-line{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}.npc-avatar{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#d7d4cc;color:#34332f;font-weight:800}.npc-line p{margin:2px 0 0;color:#5d5952}.game-choices{display:grid;gap:10px;margin-top:14px}.game-choice{width:100%;text-align:left;border:1px solid #d9d5cc;border-radius:10px;background:#fbfaf7;color:#34322e;padding:14px 16px;cursor:pointer;font:inherit;line-height:1.55}.game-choice:hover,.game-choice:focus-visible{border-color:#9a694e;background:#fff7f1;outline:none}.finding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.finding-card{border:1px solid #dedbd3;border-radius:10px;padding:14px;background:#f7f5f0}.finding-card strong,.finding-card span{display:block}.finding-card span{margin-top:5px;color:#625e57;font-size:.88rem}.game-plain{color:#4d4a44}.game-textarea{width:100%;min-height:110px;resize:vertical;padding:12px 14px;border:1px solid #d9d5cc;border-radius:10px;background:#fff;color:#292724;font:inherit}.game-textarea:focus{outline:2px solid #a86e4e;outline-offset:1px}.game-list{margin:10px 0 0;padding-left:20px;color:#5b5751}.game-list li+li{margin-top:8px}.game-complete{display:inline-block;color:#466044;background:#e7eee4;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:800;letter-spacing:.08em}.game-summary{display:flex;gap:8px;flex-wrap:wrap}.game-summary span{background:#f0eee8;border-radius:8px;padding:6px 9px;font-size:.8rem;color:#55514b}@media (max-width: 860px){.game-layout{grid-template-columns:1fr}.game-side{grid-template-columns:1fr 1fr}}@media (max-width: 620px){.game-topbar{align-items:flex-start}.game-top-actions{flex-direction:column;gap:2px;align-items:flex-end}.game-layout{width:min(100% - 20px,1180px);margin-top:12px}.finding-grid,.game-side{grid-template-columns:1fr}.game-panel{border-radius:12px;padding:18px}}
