*{margin:0;padding:0;box-sizing:border-box}
body{background:#1a2e10;overflow:hidden;font-family:'VT323',monospace;color:#e8d5b5;cursor:grab;user-select:none}
body.dragging{cursor:grabbing}
canvas#city-canvas{display:block;width:100vw;height:100vh;image-rendering:pixelated}

/* ── TOP BAR ── */
#hud-top{position:fixed;top:0;left:0;right:0;height:48px;background:linear-gradient(180deg,rgba(20,14,6,.96),rgba(20,14,6,.7));border-bottom:1px solid rgba(212,160,74,.2);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100;gap:12px}
#hud-left{display:flex;align-items:center;gap:12px}
#hud-title{font-family:'Orbitron',sans-serif;font-weight:900;font-size:18px;color:#d4a04a;text-shadow:0 0 18px rgba(212,160,74,.4);letter-spacing:4px;white-space:nowrap}
#social-links{display:flex;align-items:center;gap:5px}
#social-links a,#ca-copy{display:flex;align-items:center;gap:4px;padding:3px 7px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#888;text-decoration:none;font-family:'Press Start 2P',monospace;font-size:6px;cursor:pointer;transition:all .15s}
#twitter-link:hover{color:#1DA1F2;border-color:rgba(29,161,242,.3);background:rgba(29,161,242,.08)}
#pump-link:hover{color:#5cb85c;border-color:rgba(92,184,92,.3);background:rgba(92,184,92,.08)}
#pump-link span{font-size:6px}
#ca-copy{border:1px solid rgba(212,160,74,.15);color:#d4a04a;background:rgba(212,160,74,.06)}
#ca-copy:hover{background:rgba(212,160,74,.12);border-color:rgba(212,160,74,.3)}
#ca-copied{color:#5cb85c}
#docs-top-link{display:flex;align-items:center;padding:3px 7px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#888;text-decoration:none;font-family:'Press Start 2P',monospace;font-size:6px;cursor:pointer;transition:all .15s}
#docs-top-link:hover{color:#d4a04a;border-color:rgba(212,160,74,.3);background:rgba(212,160,74,.08)}

#search-box{display:flex;gap:4px;flex-shrink:1;min-width:0}
#search-input{font-family:'Press Start 2P',monospace;font-size:7px;padding:4px 8px;background:rgba(212,160,74,.08);border:1px solid rgba(212,160,74,.2);border-radius:4px;color:#e8d5b5;outline:none;width:140px}
#search-input:focus{border-color:rgba(212,160,74,.5)}
#search-input::placeholder{color:#6b5a3a}
#search-btn{font-family:'Press Start 2P',monospace;font-size:7px;padding:4px 8px;background:rgba(212,160,74,.15);border:1px solid rgba(212,160,74,.25);border-radius:4px;color:#d4a04a;cursor:pointer}
#search-btn:hover{background:rgba(212,160,74,.25)}

#hud-stats{display:flex;gap:10px;font-family:'Press Start 2P',monospace;font-size:8px}
#hud-stats span{padding:4px 8px;background:rgba(212,160,74,.08);border:1px solid rgba(212,160,74,.12);border-radius:4px;white-space:nowrap}
#hud-time{color:#f0c040}
#hud-wallets{color:#7ec87e}
#hud-pool{color:#e8a030}

/* ── DISTRIBUTION TIMER ── */
#distribution-timer{position:fixed;top:72px;left:50%;transform:translateX(-50%);text-align:center;z-index:100;background:rgba(20,14,6,.92);border:1px solid rgba(212,160,74,.2);border-radius:8px;padding:8px 24px}
#dist-label{font-family:'Press Start 2P',monospace;font-size:6px;color:#8b7355;letter-spacing:2px;margin-bottom:2px}
#dist-countdown{font-family:'Orbitron',sans-serif;font-weight:700;font-size:24px;color:#d4a04a;text-shadow:0 0 12px rgba(212,160,74,.4)}
#dist-pool-info{font-family:'Press Start 2P',monospace;font-size:5px;color:#5a4a2a;margin-top:2px}
#dist-status{font-family:'Press Start 2P',monospace;font-size:6px;margin-top:4px;min-height:14px;transition:opacity .3s}
#dist-status.completed{color:#5cb85c;animation:statusPulse 2s ease-out}
#dist-status.pending{color:#6b5a3a}
@keyframes statusPulse{0%{color:#80ff80;text-shadow:0 0 8px rgba(92,184,92,.5)}100%{color:#5cb85c;text-shadow:none}}

/* ── DOCS PANEL ── */
#docs-panel{position:fixed;top:50px;left:50%;transform:translateX(-50%);width:420px;max-width:92vw;max-height:calc(100vh - 100px);background:rgba(16,12,6,.97);border:1px solid rgba(212,160,74,.25);border-radius:10px;z-index:120;display:flex;flex-direction:column;backdrop-filter:blur(10px)}
#docs-panel.hidden{display:none}
#docs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;border-bottom:1px solid rgba(212,160,74,.12)}
#docs-header span{font-family:'Orbitron',sans-serif;font-weight:700;font-size:13px;color:#d4a04a;letter-spacing:2px}
#docs-close{background:none;border:none;color:#8b7355;font-size:20px;cursor:pointer}
#docs-close:hover{color:#e04040}
#docs-body{overflow-y:auto;padding:12px 16px 16px;flex:1}
.doc-section{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(212,160,74,.06)}
.doc-section:last-child{border-bottom:none;margin-bottom:0}
.doc-section h3{font-family:'Press Start 2P',monospace;font-size:8px;color:#d4a04a;margin-bottom:6px;letter-spacing:1px}
.doc-section p{font-family:'VT323',monospace;font-size:16px;color:#a09888;line-height:1.5;margin-bottom:4px}
.doc-section b{color:#e8d5b5}
.doc-section i{color:#6b5a3a;font-size:14px}
.doc-section table{width:100%;font-family:'VT323',monospace;font-size:15px;border-collapse:collapse;margin:4px 0}
.doc-section table th{text-align:left;color:#8b7355;font-weight:normal;padding:2px 6px;border-bottom:1px solid rgba(212,160,74,.1)}
.doc-section table td{padding:3px 6px;color:#c0b8a8;border-bottom:1px solid rgba(255,255,255,.02)}
.doc-section .tc{font-family:'Press Start 2P',monospace;font-size:7px}
.formula{font-family:'VT323',monospace;font-size:15px;color:#c0b8a8;background:rgba(212,160,74,.05);border:1px solid rgba(212,160,74,.1);border-radius:4px;padding:6px 10px;margin:4px 0;line-height:1.6}
.hl{color:#d4a04a}
/* ── QUALIFY BAR ── */
#qualify-bar{position:fixed;top:48px;left:0;right:0;z-index:99;display:flex;align-items:center;justify-content:center;gap:12px;padding:5px 0;background:rgba(20,30,15,.85);border-bottom:1px solid rgba(92,184,92,.1);font-family:'Press Start 2P',monospace;font-size:7.5px;color:rgba(180,210,160,.6);letter-spacing:.5px}
#qualify-bar b{color:#7ec87e}
#qualify-bar .sep{color:rgba(120,180,100,.15)}
#docs-bar-link{color:#5cb85c;text-decoration:none;border-bottom:1px dotted rgba(92,184,92,.4);cursor:pointer;transition:all .15s}
#docs-bar-link:hover{color:#7ee87e;border-bottom-color:#7ee87e}

/* docs-toggle styled in bottom bar block */

/* ── VAULT LINK (in top bar) ── */
#vault-link{font-family:'Press Start 2P',monospace;font-size:8px;padding:4px 10px;background:rgba(92,184,92,.1);border:1px solid rgba(92,184,92,.25);border-radius:4px;color:#5cb85c;text-decoration:none;transition:all .2s;letter-spacing:1px}
#vault-link:hover{background:rgba(92,184,92,.2);box-shadow:0 0 10px rgba(92,184,92,.2)}

/* ── HARVEST HISTORY INLINE ── */
#harvest-hist-inline{margin-top:5px;max-height:48px;overflow-y:auto;font-family:'Press Start 2P',monospace;font-size:5px;line-height:1.8;color:#5a4a2a}
.hh-row{display:flex;justify-content:space-between;gap:6px;padding:1px 0;border-bottom:1px solid rgba(212,160,74,.05)}
.hh-epoch{color:#8b7355}
.hh-amt{color:#5cb85c}
.hh-info{color:#4a3a2a}

/* dev link removed — access via /dev URL only */

/* ── GACHA TOAST ── */
#gacha-toast{position:fixed;top:auto;bottom:50px;left:50%;transform:translateX(-50%);z-index:110;background:rgba(20,14,6,.95);border:2px solid rgba(212,160,74,.4);border-radius:10px;padding:10px 24px;text-align:center;animation:gachaIn .3s ease-out}
#gacha-toast.hidden{display:none}
#gacha-header{font-family:'Press Start 2P',monospace;font-size:7px;color:#8b7355;letter-spacing:2px;margin-bottom:6px}
#gacha-slot{font-family:'Orbitron',sans-serif;font-weight:700;font-size:16px;color:#d4a04a;min-width:160px;transition:color .1s}
#gacha-result{margin-top:4px}
#gacha-result.hidden{display:none}
#gacha-mult{font-family:'Press Start 2P',monospace;font-size:10px;color:#f0c040;text-shadow:0 0 10px rgba(240,192,64,.5)}
@keyframes gachaIn{from{transform:translateX(-50%) translateY(10px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}

/* ── WALLET INFO ── */
#wallet-info{position:fixed;top:72px;right:12px;width:250px;background:rgba(20,14,6,.95);border:1px solid rgba(212,160,74,.25);border-radius:8px;padding:14px;z-index:100}
#wallet-info.hidden{display:none}
#wallet-close{position:absolute;top:6px;right:10px;background:none;border:none;color:#8b7355;font-size:18px;cursor:pointer}
#wallet-close:hover{color:#e04040}
#wallet-tier{font-family:'Orbitron',sans-serif;font-weight:700;font-size:11px;margin-bottom:3px;padding:2px 8px;display:inline-block;border-radius:4px}
#wallet-profession{font-family:'Press Start 2P',monospace;font-size:7px;margin-bottom:8px;color:#e8d5b5}
#wallet-addr-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}
#wallet-address{font-family:'VT323',monospace;font-size:13px;color:#8b7355;word-break:break-all;line-height:1.2;padding:4px 6px;background:rgba(255,255,255,.03);border-radius:4px;flex:1}
#copy-addr{background:none;border:1px solid rgba(212,160,74,.2);border-radius:3px;color:#8b7355;font-size:14px;cursor:pointer;padding:2px 5px}
#copy-addr:hover{color:#d4a04a;border-color:rgba(212,160,74,.4)}
#copy-toast{font-family:'Press Start 2P',monospace;font-size:6px;color:#5cb85c;display:block;margin-bottom:4px}
#copy-toast.hidden{display:none}
#wallet-balance,#wallet-multiplier,#wallet-earned,#wallet-share{font-family:'VT323',monospace;font-size:16px;line-height:1.6}

/* ── LEADERBOARD ── */
#leaderboard{position:fixed;top:72px;left:12px;width:290px;max-height:calc(100vh - 120px);background:rgba(20,14,6,.95);border:1px solid rgba(212,160,74,.25);border-radius:8px;z-index:100;display:flex;flex-direction:column}
#leaderboard.hidden{display:none}
#lb-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;font-family:'Orbitron',sans-serif;font-weight:700;font-size:11px;color:#d4a04a}
#lb-close{background:none;border:none;color:#8b7355;font-size:18px;cursor:pointer}
#lb-close:hover{color:#e04040}
#lb-tabs{display:flex;gap:4px;padding:0 10px 6px}
.lb-tab{font-family:'Press Start 2P',monospace;font-size:6px;padding:3px 6px;background:rgba(212,160,74,.08);border:1px solid rgba(212,160,74,.12);border-radius:3px;color:#6b5a3a;cursor:pointer}
.lb-tab.active{color:#d4a04a;border-color:rgba(212,160,74,.3);background:rgba(212,160,74,.15)}
#lb-list{overflow-y:auto;padding:0 8px 8px;flex:1}
.lb-entry{display:flex;align-items:center;gap:6px;padding:4px 6px;border-left:2px solid #555;border-radius:0 3px 3px 0;margin-bottom:2px;cursor:pointer;font-family:'VT323',monospace;font-size:14px;background:rgba(255,255,255,.02)}
.lb-entry:hover{background:rgba(212,160,74,.08)}
.lb-rank{color:#8b7355;width:22px;font-family:'Press Start 2P',monospace;font-size:6px}
.lb-addr{flex:1;overflow:hidden;text-overflow:ellipsis}
.lb-prof{color:#a09070;font-size:12px}
.lb-val{color:#e8d5b5;white-space:nowrap}
.lb-mult{color:#f0c040;font-size:12px;width:32px;text-align:right}

/* ── HISTORY ── */
#history{position:fixed;top:115px;left:50%;transform:translateX(-50%);width:300px;max-height:250px;background:rgba(20,14,6,.95);border:1px solid rgba(212,160,74,.25);border-radius:8px;z-index:105;display:flex;flex-direction:column}
#history.hidden{display:none}
#hist-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;font-family:'Orbitron',sans-serif;font-weight:700;font-size:10px;color:#d4a04a}
#hist-close{background:none;border:none;color:#8b7355;font-size:18px;cursor:pointer}
#hist-close:hover{color:#e04040}
#hist-list{overflow-y:auto;padding:0 10px 8px;flex:1}
.hist-entry{display:flex;justify-content:space-between;padding:4px 6px;border-bottom:1px solid rgba(212,160,74,.06);font-family:'VT323',monospace;font-size:14px}
.hist-time{color:#8b7355}
.hist-amt{color:#5cb85c}
.hist-holders{color:#a09070}

/* ── BOTTOM BAR (Metropolis-style) ── */
#tier-filters{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:3px;padding:8px 16px;background:linear-gradient(0deg,rgba(8,6,2,.96) 0%,rgba(8,6,2,.8) 80%,rgba(8,6,2,0) 100%);border-top:1px solid rgba(212,160,74,.08)}
.tier-btn{font-family:'Press Start 2P',monospace;font-size:7px;padding:6px 10px;background:rgba(255,255,255,.03);color:#4a4030;border:1px solid rgba(255,255,255,.06);border-radius:0;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:1px}
.tier-btn:hover{color:var(--tc);background:rgba(255,255,255,.05)}
.tier-btn.active{color:var(--tc);border-bottom-color:var(--tc);background:rgba(255,255,255,.04);text-shadow:0 0 8px var(--tc)}
.tier-btn:not(.active){opacity:.45}
.tier-btn.active::after{content:'';display:block;width:100%;height:1px;margin-top:3px;background:var(--tc);box-shadow:0 0 6px var(--tc);opacity:.5}
#lb-toggle,#hist-toggle,#docs-toggle{font-family:'Press Start 2P',monospace;font-size:8px;padding:6px 10px;background:rgba(255,255,255,.03);color:#6b5a3a;border:1px solid rgba(212,160,74,.08);border-radius:0;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s}
#lb-toggle:hover,#hist-toggle:hover,#docs-toggle:hover{color:#d4a04a;border-bottom-color:rgba(212,160,74,.4);text-shadow:0 0 6px rgba(212,160,74,.3)}

/* ── MINIMAP ── */
#hud-minimap{position:fixed;bottom:42px;right:12px;z-index:100;background:rgba(20,14,6,.9);border:1px solid rgba(212,160,74,.18);border-radius:6px;padding:4px}
#minimap-canvas{display:block;border-radius:3px;image-rendering:pixelated}

/* ── EVENT FEED ── */
#event-feed{position:fixed;bottom:42px;left:12px;width:320px;z-index:100;display:flex;flex-direction:column;gap:2px;pointer-events:none;max-height:70px;overflow:hidden}
.event-item{font-family:'Press Start 2P',monospace;font-size:6px;padding:3px 8px;background:rgba(20,14,6,.88);border-left:2px solid #d4a04a;border-radius:0 3px 3px 0;color:#a09070;animation:evSlide .3s ease-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-item.join{border-left-color:#5cb85c}
.event-item.leave{border-left-color:#d9534f}
.event-item.distribution{border-left-color:#f0c040;color:#f0c040}
.event-item.exile{border-left-color:#808080;color:#a0a0a0}
@keyframes evSlide{from{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}

/* ── FLASH ── */
#dist-flash{position:fixed;inset:0;z-index:99;pointer-events:none;opacity:0;transition:opacity .1s}
#dist-flash.active{opacity:1;background:radial-gradient(ellipse at center,rgba(100,180,60,.14) 0%,rgba(240,192,64,.07) 40%,transparent 70%);animation:flashP 2s ease-out forwards}
@keyframes flashP{0%{opacity:1}100%{opacity:0}}

/* ── BANNER ── */
#game-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:120;text-align:center;pointer-events:none;padding:24px 55px;min-width:360px;background:rgba(6,4,2,.88);border:1px solid rgba(212,160,74,.15);border-radius:12px;backdrop-filter:blur(8px)}
#game-banner.hidden{display:none}
.banner-line{height:2px;margin:8px 0;border-radius:1px}
.banner-title{font-family:'Orbitron',sans-serif;font-weight:900;font-size:26px;letter-spacing:5px;text-shadow:0 0 25px currentColor,0 0 50px currentColor;margin:6px 0}
.banner-sub{font-family:'Press Start 2P',monospace;font-size:8px;color:#c0b8a0;letter-spacing:1px;margin:6px 0;line-height:1.7}
.banner-anim{animation:bannerIn 5.5s ease-out forwards}
@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}6%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}12%{transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-55%)}}
