:root{--paper: #f3ecdc;--paper-2: #e9dfca;--ink: #262019;--ink-2: #5e5447;--line: #cdbfa3;--accent: #b5501f;--gold: #f2c14e;--panel: #1c1813;--panel-2: #26211a;--panel-line: #3a3229;--panel-ink: #f1e8d6;--panel-muted: #a89c88;--serif: "Fraunces", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--bar: 52px;--side: 300px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;cursor:pointer}input{font:inherit}h1,h2,h3{font-weight:600;line-height:1.15}.mono{font-family:var(--mono);font-size:.82em}.muted{color:var(--ink-2)}.eyebrow{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}button.primary,.home button[type=submit],.multiForm button,.card .button,.multiCta .button,.multiRow button{padding:9px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-decoration:none;display:inline-block}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;border:1px solid currentColor;color:inherit;padding:4px 10px;font-family:var(--mono);font-size:11px;opacity:.8}button.ghost:hover{opacity:1}button.ghost.on{background:var(--ink);color:var(--paper);border-color:var(--ink);opacity:1}.frame{height:100%;display:grid;grid-template-rows:var(--bar) 1fr}.topbar{height:var(--bar);display:flex;align-items:center;gap:20px;padding:0 16px;background:var(--panel);color:var(--panel-ink);border-bottom:1px solid var(--panel-line);min-width:0}.topbar .brand{font-weight:600;font-size:17px;text-decoration:none;white-space:nowrap}.topbarBody{flex:1;display:flex;align-items:center;gap:20px;min-width:0}.topbar nav{display:flex;gap:16px;font-family:var(--mono);font-size:12px}.topbar nav a,.topbar .navlink{color:var(--panel-muted);text-decoration:none;white-space:nowrap}.topbar nav a:hover,.topbar .navlink:hover{color:var(--panel-ink)}.topbar .navlink{font-family:var(--mono);font-size:12px}.page{grid-template-rows:var(--bar) 1fr;overflow:auto}.home{width:100%}.hero{display:grid;grid-template-columns:minmax(360px,5fr) 7fr;min-height:calc(100vh - var(--bar));background:var(--panel);color:var(--panel-ink)}.heroCopy{order:1;padding:56px 48px;display:flex;flex-direction:column;justify-content:center}.heroLive{order:2;position:relative;background:#2b2620;min-height:420px}.heroLive iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.heroLive:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 40px 0 40px -30px #1c1813b3}.heroCaption{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:10px;background:#1c1813e0;color:var(--panel-ink);padding:8px 12px;font-size:13px;text-decoration:none}.heroCaption em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--panel-muted)}.heroCaption .muted{color:var(--panel-muted)}.heroCaption .go{color:var(--gold);font-family:var(--mono);font-size:12px;margin-left:4px}.heroCaption:hover{background:var(--panel)}.hero .eyebrow{color:var(--panel-muted)}.hero h1{font-size:clamp(36px,3.9vw,56px);margin-top:10px;letter-spacing:-.01em;max-width:16ch}.hero .lede{margin-top:16px;font-size:17px;color:var(--panel-muted);max-width:48ch}.openForm{margin-top:28px;display:flex;gap:8px;max-width:560px}.openForm input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--panel-line);background:var(--panel-2);color:var(--panel-ink);font-family:var(--mono);font-size:14px}.openForm input:focus{outline:2px solid var(--gold);outline-offset:-1px}.hero .openForm button{background:var(--gold);border-color:var(--gold);color:var(--ink)}.hero .error{margin-top:10px;color:#f08a7c}.hero .examples{list-style:none;margin-top:14px;font-size:13px;display:grid;gap:4px}.hero .examples li{display:flex;gap:10px;align-items:baseline}.hero .examples li:before{content:"→";color:var(--panel-muted)}.hero .examples .mono{color:var(--panel-ink)}.hero .examples .muted{color:var(--panel-muted)}.heroLegend{margin-top:32px;padding-top:16px;border-top:1px solid var(--panel-line);display:flex;flex-wrap:wrap;gap:8px 16px;font-family:var(--mono);font-size:11px;color:var(--panel-ink)}.heroLegend span{display:flex;align-items:center;gap:6px}.heroLegend i{width:8px;height:8px;border-radius:50%;display:inline-block}.heroLegend .muted{color:var(--panel-muted)}.heroStage{width:100%;height:100%}.heroLoading{height:100%;display:grid;place-items:center;background:#2b2620;color:var(--panel-muted);font-family:var(--mono);font-size:12px}.content{max-width:960px;margin:0 auto;padding:24px 24px 72px}.content section{margin-top:72px;scroll-margin-top:16px}.sectionHead{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.sectionHead h2{font-size:24px}.sectionHead .muted{font-family:var(--mono);font-size:12px}.empty{padding:20px 0}.townGrid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:18px}.townCard{border:1px solid var(--line);background:#fffdf7;display:flex;flex-direction:column;transition:border-color .15s,transform .15s}.townCard:hover{border-color:var(--ink);transform:translateY(-2px)}.townCard.picked{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.townCard .cardBody{padding:0 0 10px;text-decoration:none;display:grid;gap:3px;flex:1}.townCard .cardBody>span{padding:0 14px}.swatch{width:100%;height:auto;display:block;border-bottom:1px solid var(--line);margin-bottom:10px}.townCard .cardName{font-weight:600;font-size:17px}.townCard .cardName em{font-style:normal;font-weight:400;color:var(--ink-2);font-family:var(--mono);font-size:12px;margin-left:8px}.townCard .cardMeta{font-size:13px;color:var(--ink-2);margin-top:4px}.cardFoot{display:flex;align-items:center;justify-content:space-between;padding:0 14px 12px}.tag{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.multiRow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.rules{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px 28px;margin-top:22px}.rules li{display:grid;gap:6px;align-content:start}.rules .num{font-family:var(--mono);font-size:11px;color:var(--accent)}.rules h3{font-size:17px}.rules p{color:var(--ink-2);font-size:14px}.sourceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.sourceGrid div{border:1px solid var(--line);background:var(--paper-2);padding:16px}.sourceGrid h3{font-size:16px;margin-bottom:6px}.sourceGrid p{color:var(--ink-2);font-size:14px}.sources .note{margin-top:12px;font-family:var(--mono);font-size:11px}.multiCta{background:var(--panel);color:var(--panel-ink);padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.multiCta h2{font-size:22px}.multiCta .muted{color:var(--panel-muted);max-width:52ch;margin-top:6px}.multiCta .eyebrow{color:var(--panel-muted);margin-bottom:6px}.multiCta .button{background:var(--gold);border-color:var(--gold);color:var(--ink);white-space:nowrap}.faq dl{display:grid;grid-template-columns:1fr 1fr;gap:22px 32px;margin-top:22px}.faq dt{font-weight:600;font-size:16px}.faq dd{color:var(--ink-2);font-size:14px;margin-top:4px}.home footer{margin-top:72px;border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}.home footer nav{display:flex;gap:16px;font-family:var(--mono);font-size:12px}.home footer nav a{color:var(--ink-2);text-decoration:none}.home footer nav a:hover{color:var(--ink)}.loadingPane{display:grid;place-items:center;padding:24px}.card{background:var(--paper-2);border:1px solid var(--line);padding:24px 28px;max-width:520px;width:100%;display:grid;gap:10px}.card h1{font-size:22px}.card .steps{display:flex;gap:8px;font-family:var(--mono);font-size:11px;color:var(--ink-2)}.card .steps span{padding:3px 8px;border:1px solid var(--line)}.card .steps span.on{border-color:var(--ink);color:var(--ink)}.card .button{justify-self:start}.town{grid-template-columns:var(--side) 1fr var(--side);grid-template-rows:var(--bar) 1fr;background:var(--panel);color:var(--panel-ink);overflow:hidden}.town .topbar{grid-column:1 / -1}.tokenTitle{display:flex;align-items:baseline;gap:10px;min-width:0}.tokenTitle h1{font-size:18px;white-space:nowrap}.tokenTitle .sym{font-family:var(--mono);font-size:12px;color:var(--panel-muted)}.tokenTitle .addr{color:var(--panel-muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tokenTitle .addr:hover{color:var(--panel-ink)}.barStats{display:flex;gap:22px;margin-left:auto}.stat{display:grid;line-height:1.2}.stat .label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--panel-muted)}.stat .value{font-size:14px;white-space:nowrap}.live{font-family:var(--mono);font-size:11px;display:flex;align-items:center;gap:6px;color:var(--panel-muted);white-space:nowrap}.live:before{content:"";width:7px;height:7px;border-radius:50%;background:#7ed49a}.live.off:before{background:var(--accent)}.tabs{display:none}.panel{overflow:auto;border-right:1px solid var(--panel-line);padding:14px;min-height:0}.panel.right{border-right:0;border-left:1px solid var(--panel-line)}.panel::-webkit-scrollbar{width:6px}.panel::-webkit-scrollbar-thumb{background:#4a4238}.panelHead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.panelHead h2{font-size:15px}.panelHead span{font-family:var(--mono);font-size:11px;color:var(--panel-muted)}.stage{position:relative;min-width:0;min-height:0}.stage canvas{display:block}.notice{position:absolute;top:12px;left:12px;right:12px;background:#1c1813e0;color:var(--gold);font-size:13px;padding:8px 12px}.panelNote{font-size:13px;color:var(--panel-muted);padding:6px 0 10px}.stageFoot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:10px 12px;pointer-events:none}.stageFoot>*{pointer-events:auto}.curve{font-size:12px;color:var(--panel-muted)}.curve.compact{background:#1c1813d9;padding:8px 10px;max-width:420px}.curve.graduated p{color:var(--gold)}.curveBar{height:5px;background:#3a3229;margin-bottom:6px}.curveBar span{display:block;height:100%;background:var(--gold)}.hint{font-family:var(--mono);font-size:11px;color:var(--panel-ink);background:#1c1813d9;padding:6px 10px;white-space:nowrap}.detail{background:var(--panel-2);border:1px solid var(--panel-line);padding:10px 12px;margin-bottom:12px;display:grid;gap:8px}.detailHead{display:flex;align-items:center;gap:8px}.detailHead strong{font-family:var(--mono);font-size:13px;flex:1}.detailHead i,.residents i,.legend i{display:inline-block;width:8px;height:8px;border-radius:50%}.detail .mono{color:var(--panel-muted);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail .stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.residents{list-style:none;font-size:13px}.residents li{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px;padding:6px 4px;cursor:pointer;border-bottom:1px solid var(--panel-line)}.residents li:hover,.residents li.selected{background:var(--panel-2)}.residents .who{font-family:var(--mono);font-size:12px}.residents .role,.residents .bal{font-family:var(--mono);font-size:10px;color:var(--panel-muted)}.legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px;font-family:var(--mono);font-size:10px;color:var(--panel-muted)}.legend span{display:flex;align-items:center;gap:5px}.feed{list-style:none;font-size:13px}.feed li{padding:7px 0;border-bottom:1px solid var(--panel-line);display:grid;gap:2px}.feed li.buy .text{color:#7ed49a}.feed li.sell .text{color:#f08a7c}.feed li.graduate .text{color:var(--gold)}.feed .meta{font-family:var(--mono);font-size:11px;color:var(--panel-muted)}.feed .meta a,.feed .muted{color:var(--panel-muted)}.bubble{width:max-content;max-width:220px;padding:7px 11px;background:#f3ecdc;color:#262019;border:2px solid #262019;font-family:Fraunces,Georgia,serif;font-size:13px;text-align:center;box-shadow:3px 3px #262019}.town.embed{grid-template-columns:1fr}.town.embed .topbar{padding:0 12px;gap:12px}.town.embed .brand{display:none}.town.embed .tokenTitle h1{font-size:15px}.multi{background:var(--panel);color:var(--panel-ink);overflow:hidden}.multiForm{display:flex;gap:6px;margin-left:auto}.multiForm input{width:400px;max-width:46vw;padding:6px 8px;border:1px solid var(--panel-line);background:var(--panel-2);color:var(--panel-ink);font-family:var(--mono);font-size:12px}.multiForm button{padding:6px 12px;background:var(--paper);color:var(--ink);border-color:var(--paper);font-size:13px}.multi .count{font-family:var(--mono);font-size:11px;color:var(--panel-muted);white-space:nowrap}.multi .grid{display:grid;gap:3px;padding:3px;min-height:0;background:var(--panel-line)}.multi .grid.n0{background:var(--panel)}.multi .grid.n1{grid-template-columns:1fr}.multi .grid.n2{grid-template-columns:1fr 1fr}.multi .grid.n3,.multi .grid.n4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.multi .cell{position:relative;min-height:0;background:var(--panel)}.multi iframe{width:100%;height:100%;border:0;display:block}.multi .remove{position:absolute;bottom:10px;right:10px;background:var(--panel);color:var(--panel-ink)}.multi .empty{padding:24px;color:var(--panel-muted)}@media(max-width:960px){.barStats,.tokenTitle .addr{display:none}.town{grid-template-columns:1fr;grid-template-rows:var(--bar) 40px 1fr}.tabs{display:flex;border-bottom:1px solid var(--panel-line)}.tabs button{flex:1;background:transparent;border:0;color:var(--panel-muted);font-family:var(--mono);font-size:12px;padding:10px}.tabs button.on{color:var(--panel-ink);box-shadow:inset 0 -2px 0 var(--gold)}.panel,.stage{display:none;grid-row:3;grid-column:1}.panel.show,.stage.show{display:block}.town.embed{grid-template-rows:var(--bar) 1fr}.town.embed .stage{display:block;grid-row:2}.panel.right{border-left:0}.hint{display:none}.topbar nav{gap:10px}.hero{grid-template-columns:1fr;min-height:0}.heroCopy{order:2;padding:32px 20px 40px}.heroLive{order:1;min-height:46vh}.openForm{flex-direction:column}.rules,.sourceGrid,.faq dl{grid-template-columns:1fr}.content{padding:8px 18px 56px}.multi .grid.n2,.multi .grid.n3,.multi .grid.n4{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:1fr}.multiForm input{max-width:40vw}}
