*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg-deep:    #0a0a0a;
  --bg-panel:   #111111;
  --bg-card:    #1a1a1a;
  --bg-input:   #0d0d0d;
  --yellow:     #fce803;
  --yellow-dim: #c4b800;
  --yellow-glow:rgba(252,232,3,.15);
  --green:      #00ff00;
  --green-dim:  #00cc00;
  --green-glow: rgba(0,255,0,.15);
  --cyan:       #00f3ff;
  --cyan-glow:  rgba(0,243,255,.15);
  --pink:       #ff6b9d;
  --purple:     #a855f7;
  --orange:     #f97316;
  --red:        #ff3355;
  --text-main:  #cccccc;
  --text-dim:   #888888;
  --text-bright:#ffffff;
  --border:     #333333;
  --font-pixel: 'Press Start 2P','Courier New',monospace;
  --font-mono:  'VT323','Courier New',monospace;
}

html,body { height:100%; background:var(--bg-deep); color:var(--text-main); font-family:var(--font-mono); font-size:16px; overflow-x:hidden; }

body::before {
  content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:linear-gradient(0deg,rgba(0,0,0,0) 50%,rgba(255,255,255,.015) 50%);
  background-size:100% 4px;
}

.screen { display:none; min-height:100vh; position:relative; z-index:1; }
.screen.active { display:flex; }
.hidden { display:none !important; }

#auth-screen { align-items:center; justify-content:center; padding:2rem 1rem; }

.auth-container {
  width:100%; max-width:440px;
  background:var(--bg-panel); border:2px solid var(--yellow); border-radius:12px;
  box-shadow:0 0 40px rgba(252,232,3,.08); padding:2.5rem 2rem;
}

.logo-block { text-align:center; margin-bottom:2rem; }
.logo-img {
  display:block; margin:0 auto 1rem; max-width:260px; width:100%; height:auto;
}
.site-tagline { font-family:var(--font-mono); font-size:.9rem; color:var(--text-dim); letter-spacing:.15em; text-transform:uppercase; margin-top:.5rem; }

.tabs { display:flex; border-bottom:2px solid var(--border); margin-bottom:1.8rem; }
.tab { flex:1; padding:.7rem; background:transparent; border:none; color:var(--text-dim); font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.1em; cursor:pointer; border-bottom:2px solid transparent; transition:color .2s; text-transform:uppercase; }
.tab.active { color:var(--yellow); border-bottom-color:var(--yellow); }
.tab:hover:not(.active) { color:var(--text-bright); }

.auth-form { display:none; flex-direction:column; gap:1.2rem; }
.auth-form.active { display:flex; }
.field-group { display:flex; flex-direction:column; gap:.4rem; }
.field-group label { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.15em; color:var(--text-dim); text-transform:uppercase; }
.hint { font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim); font-weight:normal; letter-spacing:normal; }
.field-group input { background:var(--bg-input); border:2px solid var(--border); border-radius:4px; color:var(--text-bright); font-family:var(--font-mono); font-size:1.1rem; padding:.65rem .85rem; outline:none; width:100%; transition:border-color .2s,box-shadow .2s; }
.field-group input:focus { border-color:var(--yellow); box-shadow:0 0 0 2px rgba(252,232,3,.15); }
.field-group input::placeholder { color:var(--text-dim); }

.btn-primary { background:transparent; border:2px solid var(--yellow); border-radius:4px; color:var(--yellow); font-family:var(--font-pixel); font-size:.6rem; letter-spacing:.12em; padding:.75rem 1.5rem; cursor:pointer; text-transform:uppercase; transition:background .2s,box-shadow .2s,color .2s; }
.btn-primary:hover { background:rgba(252,232,3,.12); box-shadow:0 0 16px rgba(252,232,3,.2); color:#fff; }
.btn-primary:disabled { opacity:.5; cursor:not-allowed; }
.btn-outline { background:transparent; border:2px solid var(--border); border-radius:4px; color:var(--text-dim); font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.1em; padding:.45rem .9rem; cursor:pointer; transition:border-color .2s,color .2s; text-transform:uppercase; }
.btn-outline:hover { border-color:var(--red); color:var(--red); }
.btn-danger { background:transparent; border:2px solid var(--red); border-radius:4px; color:var(--red); font-family:var(--font-pixel); font-size:.6rem; letter-spacing:.12em; padding:.75rem 1.5rem; cursor:pointer; transition:background .2s,box-shadow .2s; text-transform:uppercase; }
.btn-danger:hover { background:rgba(255,51,85,.12); box-shadow:0 0 16px rgba(255,51,85,.2); }
.btn-link { background:none; border:none; color:var(--cyan); font-family:var(--font-mono); font-size:1rem; cursor:pointer; padding:.4rem 0; text-decoration:underline; }

.error-msg { font-family:var(--font-mono); font-size:1rem; color:var(--red); min-height:1.2em; text-align:center; }

#dashboard-screen { flex-direction:column; }

.hazard-stripe {
  height:6px; width:100%; position:fixed; top:0; z-index:110;
  background:repeating-linear-gradient(45deg, var(--yellow), var(--yellow) 10px, #111 10px, #111 20px);
  border-bottom:2px solid #000;
}

.dash-header {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
  padding:.7rem 1.5rem; border-bottom:2px solid var(--border); background:rgba(0,0,0,.95);
  position:sticky; top:6px; z-index:100; box-shadow:0 4px 20px rgba(0,0,0,.8);
}
.dash-logo { display:flex; align-items:center; gap:.4rem; }
.dash-logo-img { height:32px; width:auto; }
.dash-name { font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.08em; color:var(--text-bright); margin-left:.3rem; }
.dash-name .highlight { color:var(--yellow); }

.dash-nav { display:flex; gap:.15rem; flex-wrap:wrap; }
.nav-btn { background:transparent; border:none; color:var(--text-dim); font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.08em; padding:.4rem .55rem; cursor:pointer; border-bottom:2px solid transparent; transition:color .2s,border-color .2s,text-shadow .2s; text-transform:uppercase; }
.nav-btn:hover { color:var(--text-bright); text-shadow:0 0 8px var(--yellow); }
.nav-btn.active { color:var(--yellow); border-bottom-color:var(--yellow); text-shadow:0 0 8px var(--yellow); }

.dash-user-block { display:flex; align-items:center; gap:.8rem; }
.dash-username { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.08em; color:var(--yellow); }

.dash-main { flex:1; max-width:1200px; width:100%; margin:0 auto; padding:1.5rem; }

.panel { display:none; flex-direction:column; gap:1.5rem; }
.panel.active { display:flex; }

.section-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.8rem; }
.section-header h2 { font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.12em; color:var(--text-dim); text-transform:uppercase; }

.stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; }
.stat-card { background:var(--bg-card); border:2px solid var(--border); border-radius:8px; padding:1.2rem 1.4rem; transition:transform .2s,box-shadow .2s; }
.stat-card:hover { transform:scale(1.02); }
.stat-card.glow-green { border-color:var(--green); box-shadow:0 0 20px rgba(0,255,0,.1) inset,0 0 10px rgba(0,255,0,.08); }
.stat-card.glow-cyan  { border-color:var(--cyan);  box-shadow:0 0 20px rgba(0,243,255,.1) inset,0 0 10px rgba(0,243,255,.08); }
.stat-card.glow-cyan .stat-value { color:var(--cyan); }
.stat-card.glow-yellow { border-color:var(--yellow); box-shadow:0 0 20px rgba(252,232,3,.1) inset,0 0 10px rgba(252,232,3,.08); }
.stat-card.glow-yellow .stat-value { color:var(--yellow); }
.stat-label { font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.15em; color:var(--text-dim); margin-bottom:.5rem; text-transform:uppercase; }
.stat-value { font-family:var(--font-pixel); font-size:1.3rem; color:var(--green); line-height:1.2; margin-bottom:.3rem; }
.stat-value.mono,.stat-value.small { font-family:var(--font-mono); font-size:1.1rem; font-weight:normal; word-break:break-all; }
.stat-sub { font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim); }

.panel-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1rem; }
.panel-box { background:var(--bg-card); border:2px solid var(--border); border-radius:8px; padding:1.2rem; }
.box-header { font-family:var(--font-pixel); font-size:.45rem; letter-spacing:.15em; color:var(--text-dim); border-bottom:2px solid var(--border); padding-bottom:.5rem; margin-bottom:.8rem; text-transform:uppercase; }
.arcade-grid { display:flex; gap:1rem; flex-wrap:wrap; }

.leaderboard-list { overflow-y:auto; }
.leaderboard-list.tall { max-height:480px; }
.lb-row { display:flex; align-items:center; gap:.6rem; padding:.4rem 0; border-bottom:1px solid rgba(51,51,51,.8); font-family:var(--font-mono); font-size:1rem; }
.lb-row:last-child { border-bottom:none; }
.lb-row.lb-me { background:rgba(252,232,3,.06); color:var(--text-bright); }
.lb-rank { font-family:var(--font-pixel); font-size:.5rem; width:2.5rem; color:var(--text-dim); flex-shrink:0; }
.lb-user { flex:1; color:var(--text-main); }
.lb-score { font-family:var(--font-pixel); color:var(--green); font-size:.55rem; }
.lb-date { font-size:.9rem; color:var(--text-dim); flex-shrink:0; }
.lb-empty { color:var(--text-dim); font-size:1rem; padding:.6rem 0; }

.miner-controls { display:flex; gap:.8rem; align-items:center; }
.miner-progress-wrap { height:4px; background:var(--bg-input); overflow:hidden; border-radius:2px; }
.miner-progress-bar { height:100%; background:linear-gradient(90deg,var(--green-dim),var(--green)); transition:width .4s linear; box-shadow:0 0 8px var(--green); }
.miner-log-wrap { border:2px solid var(--border); border-radius:8px; margin-top:1rem; overflow:hidden; }
.miner-log-header { font-family:var(--font-pixel); font-size:.45rem; letter-spacing:.15em; color:var(--text-dim); padding:.5rem .8rem; background:var(--bg-input); border-bottom:2px solid var(--border); text-transform:uppercase; }
.miner-log { height:220px; overflow-y:auto; padding:.6rem .8rem; font-family:var(--font-mono); font-size:1rem; line-height:1.7; color:var(--text-dim); }
.log-line { display:block; }
.log-line.success { color:var(--green); }
.log-line.info    { color:var(--cyan); }
.log-line.warn    { color:var(--yellow); }
.log-line.err     { color:var(--red); }

.wallet-address { font-family:var(--font-mono); font-size:1rem; color:var(--yellow); margin-bottom:.8rem; word-break:break-all; min-height:1.2em; }
.wallet-form-row { display:flex; gap:.6rem; flex-wrap:wrap; }
.wallet-form-row input { flex:1; min-width:200px; background:var(--bg-input); border:2px solid var(--border); border-radius:4px; color:var(--text-bright); font-family:var(--font-mono); font-size:1rem; padding:.6rem .8rem; outline:none; transition:border-color .2s,box-shadow .2s; }
.wallet-form-row input:focus { border-color:var(--yellow); box-shadow:0 0 0 2px rgba(252,232,3,.12); }
.wallet-form-row input::placeholder { color:var(--text-dim); }

.info-text { font-family:var(--font-mono); font-size:1rem; color:var(--text-dim); line-height:1.6; }
.info-text strong { color:var(--text-bright); }
.info-row { display:flex; justify-content:space-between; padding:.4rem 0; border-bottom:1px solid rgba(51,51,51,.8); font-family:var(--font-mono); font-size:1rem; }
.info-label { color:var(--text-dim); font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.08em; text-transform:uppercase; }

.dash-footer { text-align:center; padding:1rem; font-family:var(--font-mono); font-size:.9rem; color:var(--text-dim); letter-spacing:.05em; border-top:2px solid var(--border); }

::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--bg-deep); }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }
::-webkit-scrollbar-thumb:hover { background:var(--yellow-dim); }

.admin-badge {
  font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.12em;
  color:var(--bg-deep); background:var(--yellow); padding:.2rem .55rem; border-radius:2px;
  text-transform:uppercase;
}

.btn-admin {
  background:transparent; border:2px solid var(--yellow); border-radius:4px; color:var(--yellow);
  font-family:var(--font-pixel); font-size:.45rem; letter-spacing:.08em;
  padding:.4rem .85rem; cursor:pointer; transition:background .2s,box-shadow .2s,text-shadow .2s; text-transform:uppercase;
}
.btn-admin:hover { background:rgba(252,232,3,.12); box-shadow:0 0 12px rgba(252,232,3,.2); text-shadow:0 0 8px var(--yellow); }
.btn-admin-active { background:rgba(252,232,3,.18); box-shadow:0 0 12px rgba(252,232,3,.2); }

.admin-header-bar {
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(252,232,3,.05); border:2px solid var(--yellow); border-radius:8px;
  border-left:4px solid var(--yellow); padding:.7rem 1.2rem;
  margin-bottom:1.5rem;
}
.admin-mode-label { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.1em; color:var(--yellow); text-transform:uppercase; }

.admin-tabs { display:flex; border-bottom:2px solid var(--border); margin-bottom:1.2rem; flex-wrap:wrap; }
.admin-tab { flex:0; padding:.65rem 1rem; background:transparent; border:none; color:var(--text-dim); font-family:var(--font-pixel); font-size:.55rem; letter-spacing:.08em; cursor:pointer; border-bottom:2px solid transparent; transition:color .2s,text-shadow .2s; white-space:nowrap; text-transform:uppercase; }
.admin-tab:hover { color:var(--text-bright); text-shadow:0 0 8px var(--yellow); }
.admin-tab.active { color:var(--yellow); border-bottom-color:var(--yellow); text-shadow:0 0 8px var(--yellow); }

.admin-tab-panel { display:none; }
.admin-tab-panel.active { display:block; }

.admin-toolbar { display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; flex-wrap:wrap; }
.admin-toolbar input { background:var(--bg-input); border:2px solid var(--border); border-radius:4px; color:var(--text-bright); font-family:var(--font-mono); font-size:1rem; padding:.55rem .85rem; outline:none; flex:1; min-width:180px; transition:border-color .2s; }
.admin-toolbar input:focus { border-color:var(--yellow); }
.admin-toolbar input::placeholder { color:var(--text-dim); }

.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-family:var(--font-mono); font-size:.95rem; }
.admin-table thead { background:var(--bg-input); }
.admin-table th { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.1em; color:var(--text-dim); text-align:left; padding:.5rem .7rem; border-bottom:2px solid var(--border); white-space:nowrap; text-transform:uppercase; }
.admin-table td { padding:.45rem .7rem; border-bottom:1px solid rgba(51,51,51,.6); vertical-align:middle; }
.admin-table tr:hover td { background:rgba(252,232,3,.03); }
.admin-table tr.row-admin td { background:rgba(252,232,3,.04); }

.td-id    { color:var(--text-dim); width:3rem; font-size:.9rem; }
.td-user  { font-weight:bold; color:var(--text-bright); }
.td-num   { font-family:var(--font-mono); text-align:right; }
.td-wallet{ font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim); }
.td-date  { font-size:.85rem; color:var(--text-dim); white-space:nowrap; }
.td-center{ text-align:center; }
.td-actions{ white-space:nowrap; display:flex; gap:.4rem; align-items:center; flex-wrap:wrap; }
.td-empty { text-align:center; color:var(--text-dim); padding:1.2rem; }

.btn-action { background:transparent; border:2px solid var(--border); border-radius:3px; color:var(--text-dim); font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.06em; padding:.25rem .55rem; cursor:pointer; transition:border-color .2s,color .2s; white-space:nowrap; text-transform:uppercase; }
.btn-action:hover { border-color:var(--cyan); color:var(--cyan); }
.btn-action.btn-warn:hover { border-color:var(--yellow); color:var(--yellow); }
.btn-action.btn-danger-sm { color:var(--red); border-color:var(--red); opacity:.7; }
.btn-action.btn-danger-sm:hover { opacity:1; background:rgba(255,51,85,.1); }

.badge-admin { font-family:var(--font-pixel); font-size:.5rem; color:var(--bg-deep); background:var(--yellow); padding:.15rem .45rem; border-radius:2px; }
.badge-user  { font-family:var(--font-pixel); font-size:.5rem; color:var(--text-dim); background:var(--bg-input); border:1px solid var(--border); padding:.15rem .45rem; border-radius:2px; }

.status-badge { font-family:var(--font-pixel); font-size:.5rem; padding:.15rem .5rem; letter-spacing:.08em; border-radius:2px; text-transform:uppercase; }
.status-credited { color:var(--green); border:1px solid var(--green-dim); }
.status-detected { color:var(--yellow); border:1px solid var(--yellow); }
.status-pending  { color:var(--text-dim); border:1px solid var(--border); }
.status-rejected { color:var(--red); border:1px solid var(--red); }

.text-green { color:var(--green); }
.text-warn  { color:var(--yellow); }
.text-dim   { color:var(--text-dim); }

.pagination { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:1rem; }
.page-btn { background:transparent; border:2px solid var(--border); border-radius:3px; color:var(--text-dim); font-family:var(--font-pixel); font-size:.45rem; padding:.3rem .65rem; cursor:pointer; transition:border-color .2s,color .2s; }
.page-btn:hover { border-color:var(--cyan); color:var(--cyan); }
.page-btn.active { border-color:var(--yellow); color:var(--yellow); }

.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.8); z-index:1000; display:flex; align-items:center; justify-content:center; }
.modal-overlay.hidden { display:none; }
.modal-box { background:var(--bg-panel); border:2px solid var(--yellow); border-radius:8px; padding:2rem; max-width:440px; width:90%; box-shadow:0 0 40px rgba(252,232,3,.1); }
.modal-box .field-group input { background:var(--bg-input); border:2px solid var(--border); border-radius:4px; color:var(--text-bright); font-family:var(--font-mono); font-size:1.1rem; padding:.65rem .85rem; outline:none; width:100%; }
.modal-box .field-group input:focus { border-color:var(--yellow); }

.store-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1rem; }
.store-card { background:var(--bg-card); border:2px solid var(--border); border-radius:8px; padding:1.2rem; display:flex; flex-direction:column; gap:.5rem; transition:transform .2s,box-shadow .2s; }
.store-card:hover { transform:scale(1.02); box-shadow:0 0 15px rgba(252,232,3,.08); }
.store-card.store-owned { border-color:var(--green); opacity:.8; }
.store-card-type { font-family:var(--font-pixel); font-size:.38rem; letter-spacing:.15em; color:var(--text-dim); text-transform:uppercase; }
.store-card-name { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.06em; color:var(--text-bright); text-transform:uppercase; }
.store-card-desc { font-family:var(--font-mono); font-size:.95rem; color:var(--text-dim); line-height:1.5; }
.store-card-price { font-family:var(--font-pixel); font-size:.5rem; color:var(--cyan); margin-top:auto; text-transform:uppercase; }
.store-buy-btn { font-size:.45rem; padding:.45rem .8rem; margin-top:.4rem; }

.admin-toolbar select { background:var(--bg-input); border:2px solid var(--border); border-radius:4px; color:var(--text-bright); font-family:var(--font-mono); font-size:1rem; padding:.5rem .7rem; outline:none; }
.admin-toolbar select:focus { border-color:var(--yellow); }

.chat-container { display:flex; flex-direction:column; background:var(--bg-card); border:2px solid var(--border); border-radius:8px; overflow:hidden; height:500px; }
.chat-feed { flex:1; overflow-y:auto; padding:.8rem; font-family:var(--font-mono); font-size:1rem; line-height:1.7; }
.chat-msg { margin-bottom:.3rem; word-wrap:break-word; }
.chat-msg-user { color:var(--yellow); font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.06em; margin-right:.4rem; }
.chat-msg-time { color:var(--text-dim); font-size:.85rem; margin-right:.4rem; }
.chat-msg-content { color:var(--text-main); }
.chat-msg-system { color:var(--text-dim); font-style:italic; font-size:.95rem; padding:.2rem 0; }
.chat-msg-self .chat-msg-user { color:var(--cyan); }
.chat-input-row { display:flex; gap:0; border-top:2px solid var(--border); }
.chat-input-row input { flex:1; background:var(--bg-input); border:none; color:var(--text-bright); font-family:var(--font-mono); font-size:1.05rem; padding:.75rem 1rem; outline:none; }
.chat-input-row input::placeholder { color:var(--text-dim); }
.chat-input-row .btn-primary { border-radius:0; border:none; border-left:2px solid var(--border); padding:.75rem 1.5rem; }
.chat-online-wrap { display:flex; align-items:center; gap:.4rem; font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.1em; color:var(--green); }
.chat-online-dot { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 6px var(--green); animation:pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100%{ opacity:1; } 50%{ opacity:.4; } }
.chat-error { color:var(--red); font-family:var(--font-mono); font-size:.9rem; padding:.3rem 0; }

.world-create-screen { display:flex; align-items:center; justify-content:center; min-height:400px; }

.world-class-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.world-class-option {
  display:flex; flex-direction:column; gap:.2rem; padding:.8rem; cursor:pointer;
  background:var(--bg-input); border:2px solid var(--border); border-radius:6px;
  transition:border-color .2s,box-shadow .2s;
}
.world-class-option:hover { border-color:var(--yellow-dim); }
.world-class-option.selected { border-color:var(--yellow); box-shadow:0 0 12px rgba(252,232,3,.15); }
.world-class-name { font-family:var(--font-pixel); font-size:.5rem; letter-spacing:.1em; color:var(--yellow); }
.world-class-desc { font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim); }

.world-layout {
  display:grid; grid-template-columns:1fr 240px; gap:1rem; height:calc(100vh - 140px); min-height:500px;
}
.world-main {
  display:flex; flex-direction:column; background:var(--bg-card); border:2px solid var(--border);
  border-radius:8px; overflow:hidden;
}
.world-room-header {
  display:flex; align-items:center; gap:.8rem; padding:.7rem 1rem;
  background:var(--bg-input); border-bottom:2px solid var(--border);
}
.world-room-name {
  font-family:var(--font-pixel); font-size:.6rem; letter-spacing:.1em; color:var(--yellow);
}
.world-room-zone {
  font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim);
  background:rgba(252,232,3,.08); padding:.15rem .5rem; border-radius:3px;
}
.world-room-desc {
  padding:.8rem 1rem; font-family:var(--font-mono); font-size:1rem; color:var(--text-main);
  line-height:1.6; border-bottom:1px solid var(--border);
}
.world-feed {
  flex:1; overflow-y:auto; padding:.6rem 1rem; font-family:var(--font-mono); font-size:1rem;
  line-height:1.7; color:var(--text-dim);
}
.world-feed .wf-line { display:block; }
.world-feed .wf-chat { color:var(--text-bright); }
.world-feed .wf-chat .wf-char { color:var(--cyan); }
.world-feed .wf-arrival { color:var(--green); }
.world-feed .wf-departure { color:var(--text-dim); }
.world-feed .wf-emote { color:var(--purple); }
.world-feed .wf-system { color:var(--yellow); }
.world-feed .wf-error { color:var(--red); }
.world-feed .wf-look { color:var(--cyan); }

.world-input-bar {
  display:flex; gap:.5rem; padding:.6rem .8rem; border-top:2px solid var(--border);
  background:var(--bg-input);
}
.world-input-bar input {
  flex:1; background:var(--bg-deep); border:2px solid var(--border); border-radius:4px;
  color:var(--text-bright); font-family:var(--font-mono); font-size:1.05rem;
  padding:.55rem .8rem; outline:none; transition:border-color .2s;
}
.world-input-bar input:focus { border-color:var(--yellow); }
.world-input-bar input::placeholder { color:var(--text-dim); }

.world-sidebar {
  display:flex; flex-direction:column; gap:.6rem; overflow-y:auto;
}
.world-sidebar-section {
  background:var(--bg-card); border:2px solid var(--border); border-radius:8px;
  overflow:hidden;
}
.world-sidebar-header {
  font-family:var(--font-pixel); font-size:.42rem; letter-spacing:.15em; color:var(--text-dim);
  padding:.5rem .8rem; background:var(--bg-input); border-bottom:2px solid var(--border);
}
.world-char-info {
  padding:.5rem .8rem; font-family:var(--font-mono); font-size:.95rem; color:var(--text-main);
}
.world-char-info .wci-name { color:var(--yellow); font-family:var(--font-pixel); font-size:.48rem; letter-spacing:.08em; }
.world-char-info .wci-class { color:var(--cyan); font-size:.85rem; margin-top:.2rem; }

.world-exits-list { padding:.4rem .8rem; }
.world-exit-btn {
  display:block; width:100%; text-align:left; background:transparent; border:none;
  color:var(--cyan); font-family:var(--font-mono); font-size:1rem; padding:.3rem 0;
  cursor:pointer; transition:color .2s,text-shadow .2s;
}
.world-exit-btn:hover { color:var(--yellow); text-shadow:0 0 8px var(--yellow); }
.world-exit-btn .exit-dir { font-family:var(--font-pixel); font-size:.45rem; color:var(--green); margin-right:.4rem; letter-spacing:.06em; }

.world-players-list { padding:.4rem .8rem; font-family:var(--font-mono); font-size:.95rem; }
.world-player-entry {
  padding:.25rem 0; cursor:pointer; color:var(--text-main); transition:color .2s;
}
.world-player-entry:hover { color:var(--cyan); }
.world-player-entry .wp-class { color:var(--text-dim); font-size:.85rem; }

.world-help-text {
  padding:.4rem .8rem; font-family:var(--font-mono); font-size:.85rem; color:var(--text-dim);
  line-height:1.8;
}

@media (max-width:768px) {
  .logo-img { max-width:200px; }
  .dash-logo-img { height:24px; }
  .dash-header { padding:.7rem 1rem; }
  .dash-nav { order:3; width:100%; }
  .dash-main { padding:1rem; }
  .arcade-grid { flex-direction:column; }
  .admin-table { font-size:.85rem; }
  .td-wallet { display:none; }
  .world-layout { grid-template-columns:1fr; height:auto; }
  .world-sidebar { order:-1; }
  .world-class-grid { grid-template-columns:1fr; }
}

/* === Public archive link on auth screen === */
.public-archive-link { text-align: center; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.public-archive-link a { color: var(--cyan); font-family: var(--font-pixel); font-size: .5rem; letter-spacing: .12em; text-decoration: none; }
.public-archive-link a:hover { color: var(--yellow); text-shadow: 0 0 8px var(--yellow); }

/* === Archive panel === */
.arc-toolbar {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  padding: 1rem; background: var(--bg-card); border: 2px solid var(--border); border-radius: 8px;
  margin-bottom: 1rem;
}
.arc-search-wrap { flex: 1; min-width: 240px; display: flex; gap: .5rem; }
.arc-search-wrap input {
  flex: 1; background: var(--bg-input); border: 2px solid var(--border); border-radius: 4px;
  color: var(--text-bright); font-family: var(--font-mono); font-size: 1.05rem;
  padding: .55rem .8rem; outline: none; transition: border-color .2s;
}
.arc-search-wrap input:focus { border-color: var(--yellow); }
.arc-filters { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
.arc-filters select, .arc-filters input[type="date"] {
  background: var(--bg-input); border: 2px solid var(--border); border-radius: 4px;
  color: var(--text-bright); font-family: var(--font-mono); font-size: 1rem;
  padding: .5rem .7rem; outline: none;
}
.arc-filters select:focus, .arc-filters input[type="date"]:focus { border-color: var(--yellow); }

.arc-tags-row { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1rem; }
.arc-tag-chip {
  font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .06em;
  color: var(--text-dim); background: transparent; border: 1px solid var(--border);
  padding: .3rem .55rem; border-radius: 3px; cursor: pointer; transition: all .15s;
}
.arc-tag-chip:hover { border-color: var(--cyan); color: var(--cyan); }
.arc-tag-chip.active { border-color: var(--yellow); color: var(--yellow); background: rgba(252,232,3,.08); }

.arc-grid {
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.arc-card {
  background: var(--bg-card); border: 2px solid var(--border); border-radius: 8px;
  padding: 1rem; cursor: pointer; display: flex; flex-direction: column; gap: .5rem;
  transition: transform .15s, box-shadow .15s, border-color .15s;
  min-height: 180px;
}
.arc-card:hover {
  transform: translateY(-2px); border-color: var(--yellow);
  box-shadow: 0 4px 18px rgba(252,232,3,.12);
}
.arc-card-thumb {
  width: 100%; height: 110px; background: var(--bg-input);
  border-radius: 4px; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-pixel); font-size: 1.4rem; color: var(--text-dim);
  overflow: hidden; flex-shrink: 0;
}
.arc-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.arc-card-type {
  font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .12em;
  color: var(--cyan); text-transform: uppercase;
}
.arc-card-title {
  font-family: var(--font-pixel); font-size: .55rem; letter-spacing: .04em;
  color: var(--text-bright); line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.arc-card-desc {
  font-family: var(--font-mono); font-size: .9rem; color: var(--text-dim); line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.arc-card-meta { font-family: var(--font-mono); font-size: .8rem; color: var(--text-dim); margin-top: auto; }

.arc-empty, .arc-loading { text-align: center; padding: 3rem; color: var(--text-dim); font-family: var(--font-mono); font-size: 1.1rem; }

.arc-pager { display: flex; gap: .5rem; align-items: center; justify-content: center; margin-top: 1.5rem; }
.arc-pager button { background: transparent; border: 2px solid var(--border); color: var(--text-dim); font-family: var(--font-pixel); font-size: .45rem; padding: .35rem .7rem; cursor: pointer; border-radius: 3px; }
.arc-pager button:hover:not(:disabled) { border-color: var(--cyan); color: var(--cyan); }
.arc-pager button:disabled { opacity: .35; cursor: not-allowed; }
.arc-pager .arc-page-info { font-family: var(--font-mono); font-size: .9rem; color: var(--text-dim); }

/* Detail */
.arc-detail-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 500;
  display: flex; align-items: stretch; justify-content: center; padding: 0;
  overflow-y: auto;
}
.arc-detail-overlay.hidden { display: none; }
.arc-detail-box {
  background: var(--bg-panel); border: 2px solid var(--yellow); border-radius: 0;
  width: 100%; max-width: 1100px; min-height: 100vh;
  padding: 1.5rem 1.8rem; box-shadow: 0 0 40px rgba(252,232,3,.1);
}
.arc-detail-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; padding-bottom: 1rem; border-bottom: 2px solid var(--border); margin-bottom: 1.2rem; }
.arc-detail-title { font-family: var(--font-pixel); font-size: .85rem; line-height: 1.5; color: var(--yellow); letter-spacing: .04em; }
.arc-detail-type { display: inline-block; font-family: var(--font-pixel); font-size: .45rem; letter-spacing: .12em; color: var(--bg-deep); background: var(--cyan); padding: .25rem .55rem; border-radius: 2px; margin-top: .5rem; }
.arc-detail-meta-grid { display: grid; grid-template-columns: 160px 1fr; gap: .4rem .8rem; font-family: var(--font-mono); font-size: 1rem; margin-bottom: 1.2rem; }
.arc-detail-meta-grid .arc-meta-label { color: var(--text-dim); font-family: var(--font-pixel); font-size: .45rem; letter-spacing: .1em; padding-top: .15rem; }
.arc-detail-meta-grid .arc-meta-val { color: var(--text-main); word-break: break-all; }
.arc-detail-meta-grid .arc-meta-val a { color: var(--cyan); }

.arc-detail-actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.arc-viewer-wrap { background: #000; border: 2px solid var(--border); border-radius: 6px; overflow: hidden; margin-bottom: 1.2rem; }
.arc-viewer-wrap iframe { width: 100%; height: 75vh; border: 0; display: block; }
.arc-viewer-img { width: 100%; max-height: 80vh; object-fit: contain; background: #000; display: block; }
.arc-viewer-audio { width: 100%; padding: 1rem; }

.arc-verify-block { background: var(--bg-card); border: 1px solid var(--green); border-left: 4px solid var(--green); border-radius: 6px; padding: 1rem 1.2rem; margin-bottom: 1.2rem; }
.arc-verify-header { font-family: var(--font-pixel); font-size: .55rem; letter-spacing: .12em; color: var(--green); margin-bottom: .8rem; cursor: pointer; }
.arc-verify-header::before { content: '▼ '; }
.arc-verify-block.collapsed .arc-verify-header::before { content: '▶ '; }
.arc-verify-block.collapsed .arc-verify-content { display: none; }
.arc-verify-content { font-family: var(--font-mono); font-size: .95rem; color: var(--text-main); line-height: 1.6; }
.arc-verify-row { margin-bottom: .8rem; }
.arc-verify-row strong { display: block; color: var(--text-dim); font-family: var(--font-pixel); font-size: .45rem; letter-spacing: .1em; margin-bottom: .25rem; }
.arc-verify-mono { background: var(--bg-input); padding: .5rem .7rem; border-radius: 3px; word-break: break-all; color: var(--cyan); font-size: .9rem; user-select: all; }
.arc-verify-mono.tall { white-space: pre-wrap; max-height: 140px; overflow-y: auto; }

.arc-tag { display: inline-block; font-family: var(--font-mono); font-size: .85rem; color: var(--cyan); background: rgba(0,243,255,.06); border: 1px solid rgba(0,243,255,.3); padding: .15rem .5rem; margin: .15rem .15rem .15rem 0; border-radius: 2px; }
.arc-copy-btn { background: transparent; border: 1px solid var(--border); color: var(--text-dim); font-family: var(--font-pixel); font-size: .42rem; padding: .2rem .5rem; cursor: pointer; border-radius: 2px; margin-left: .4rem; vertical-align: middle; }
.arc-copy-btn:hover { border-color: var(--yellow); color: var(--yellow); }

/* === Lobby (avatar world) === */
.lobby-shell { display: grid; grid-template-columns: 1fr 240px; gap: 1rem; }
.lobby-stage { display: flex; flex-direction: column; gap: .6rem; }
.lobby-canvas-wrap {
  position: relative; background: #000; border: 2px solid var(--yellow);
  border-radius: 8px; overflow: hidden; box-shadow: 0 0 24px rgba(252,232,3,.08);
}
#lobby-canvas {
  display: block; width: 100%; height: auto; image-rendering: pixelated;
  image-rendering: -moz-crisp-edges; image-rendering: crisp-edges;
  background: #0a0a0a; max-width: 768px; margin: 0 auto;
}
.lobby-bubbles { position: absolute; inset: 0; pointer-events: none; }
.lobby-bubble {
  position: absolute; transform: translate(-50%, -100%);
  background: rgba(10,10,10,.92); border: 1px solid var(--cyan);
  border-radius: 4px; padding: .35rem .55rem; font-family: var(--font-mono); font-size: .85rem;
  color: var(--text-bright); white-space: nowrap; max-width: 220px;
  box-shadow: 0 2px 8px rgba(0,0,0,.6); pointer-events: none;
}
.lobby-bubble .bubble-name {
  display: block; font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .08em;
  color: var(--yellow); margin-bottom: .15rem;
}
.lobby-door-tip {
  position: absolute; transform: translate(-50%, -100%);
  background: var(--yellow); color: var(--bg-deep);
  font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .08em;
  padding: .25rem .5rem; border-radius: 3px; pointer-events: none;
  text-transform: uppercase; box-shadow: 0 0 12px rgba(252,232,3,.4);
}
.lobby-controls {
  background: var(--bg-card); border: 2px solid var(--border); border-radius: 8px;
  padding: .8rem 1rem; display: flex; flex-direction: column; gap: .6rem;
}
.lobby-control-help { font-family: var(--font-mono); font-size: .9rem; color: var(--text-dim); }
.lobby-control-help strong { color: var(--yellow); font-family: var(--font-pixel); font-size: .5rem; letter-spacing: .08em; padding: 0 .15rem; }
.lobby-chat-row { display: flex; gap: .4rem; flex-wrap: wrap; }
.lobby-chat-row input {
  flex: 1; min-width: 200px; background: var(--bg-input); border: 2px solid var(--border);
  border-radius: 4px; color: var(--text-bright); font-family: var(--font-mono);
  font-size: 1rem; padding: .55rem .75rem; outline: none;
}
.lobby-chat-row input:focus { border-color: var(--yellow); }

.lobby-side { display: flex; flex-direction: column; gap: .6rem; }
.lobby-side-card { background: var(--bg-card); border: 2px solid var(--border); border-radius: 8px; overflow: hidden; }
.lobby-side-header {
  font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .15em; color: var(--text-dim);
  padding: .5rem .8rem; background: var(--bg-input); border-bottom: 2px solid var(--border);
}
.lobby-presence-list { padding: .5rem .8rem; max-height: 220px; overflow-y: auto; }
.lobby-presence-row {
  display: flex; align-items: center; gap: .5rem; padding: .3rem 0;
  font-family: var(--font-mono); font-size: .95rem;
}
.lobby-presence-row.lp-me { background: rgba(252,232,3,.05); padding: .3rem .4rem; border-radius: 3px; }
.lp-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.lp-name { color: var(--text-bright); }
.lp-class { color: var(--text-dim); font-size: .85rem; margin-left: auto; }

.lobby-doors-list { padding: .5rem .8rem; display: flex; flex-direction: column; gap: .3rem; }
.lobby-door-btn {
  background: transparent; border: 1px solid var(--border); border-radius: 3px;
  color: var(--cyan); font-family: var(--font-pixel); font-size: .45rem; letter-spacing: .08em;
  padding: .4rem .6rem; cursor: pointer; text-align: left; transition: all .15s;
}
.lobby-door-btn:hover { border-color: var(--yellow); color: var(--yellow); background: rgba(252,232,3,.05); }

.lobby-mobile-overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,.92);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 1.2rem; gap: 1rem; z-index: 10;
}
.lobby-mobile-msg { font-family: var(--font-pixel); font-size: .55rem; letter-spacing: .1em; color: var(--yellow); text-align: center; line-height: 1.6; }
.lobby-mobile-doors { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; width: 100%; max-width: 320px; }
.lobby-mobile-door { font-size: .5rem !important; padding: .65rem .4rem !important; }

/* HUD avatar (persistent) */
.hud-avatar {
  position: fixed; bottom: 18px; right: 18px; z-index: 90;
  display: flex; align-items: center; gap: .55rem;
  background: rgba(10,10,10,.92); border: 2px solid var(--yellow);
  border-radius: 8px; padding: .35rem .7rem .35rem .35rem; cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,.6), 0 0 14px rgba(252,232,3,.15);
  transition: transform .15s, box-shadow .15s;
}
.hud-avatar:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(0,0,0,.7), 0 0 22px rgba(252,232,3,.25); }
.hud-avatar canvas { image-rendering: pixelated; image-rendering: crisp-edges; background: var(--bg-input); border-radius: 4px; }
.hud-avatar span { font-family: var(--font-pixel); font-size: .45rem; letter-spacing: .08em; color: var(--yellow); }
.hud-avatar-body { display: flex; align-items: center; gap: .5rem; cursor: pointer; }
.hud-btn { font-family: var(--font-pixel); font-size: .42rem; letter-spacing: .1em; background: var(--bg-input); color: var(--yellow); border: 1px solid var(--yellow); padding: .35rem .5rem; cursor: pointer; border-radius: 3px; }
.hud-btn:hover { background: var(--yellow); color: #000; }
.lobby-poster-dialog { position: fixed; inset: 0; background: rgba(0,0,0,.7); display: flex; align-items: center; justify-content: center; z-index: 9999; }
.lobby-poster-dialog.hidden { display: none; }
.lobby-poster-dialog .lpd-box { background: var(--bg-input); border: 2px solid var(--yellow); padding: 1.5rem; max-width: 400px; text-align: center; box-shadow: 0 0 24px rgba(252,232,3,.3); }
.lobby-poster-dialog .lpd-text { font-family: var(--font-pixel); font-size: .65rem; line-height: 1.6; color: var(--yellow); margin-bottom: 1rem; }

/* Avatar picker */
.avatar-preset-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem;
}
.avatar-preset-card {
  background: var(--bg-input); border: 2px solid var(--border); border-radius: 6px;
  padding: .6rem .4rem; cursor: pointer; text-align: center;
  transition: border-color .15s, background .15s, transform .1s;
}
.avatar-preset-card:hover { border-color: var(--yellow-dim); }
.avatar-preset-card.selected { border-color: var(--yellow); background: rgba(252,232,3,.08); transform: translateY(-2px); }
.avatar-preset-card canvas { image-rendering: pixelated; image-rendering: crisp-edges; background: #0a0a0a; border-radius: 3px; display: block; margin: 0 auto .3rem; }
.avatar-preset-name { font-family: var(--font-pixel); font-size: .4rem; letter-spacing: .06em; color: var(--text-bright); line-height: 1.4; }

@media (max-width: 768px) {
  .lobby-shell { grid-template-columns: 1fr; }
  .lobby-side { order: -1; flex-direction: row; flex-wrap: wrap; }
  .lobby-side-card { flex: 1; min-width: 160px; }
  .hud-avatar { bottom: 10px; right: 10px; padding: .3rem .55rem .3rem .3rem; flex-direction: column; align-items: stretch; gap: .35rem; }
  .hud-avatar span { font-size: .4rem; }
  .hud-btn { font-size: .38rem; padding: .25rem .35rem; }
  .avatar-preset-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Buy Buckazoids button + external nav (login screen) */
.buy-buckazoids-btn {
  display: block;
  margin: 16px auto 12px;
  padding: 12px 18px;
  background: #0a0a0a;
  border: 2px solid var(--hazard-yellow, #fce803);
  color: var(--hazard-yellow, #fce803);
  font-family: 'VT323', monospace;
  font-size: 22px;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 0 12px rgba(252, 232, 3, 0.35);
  transition: all .15s;
}
.buy-buckazoids-btn:hover {
  background: var(--hazard-yellow, #fce803);
  color: #0a0a0a;
  box-shadow: 0 0 22px rgba(252, 232, 3, 0.7);
}
.ext-nav {
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  justify-content: center; padding: 12px 0 4px;
  border-top: 1px dashed #222;
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
}
.ext-nav a {
  color: #888; text-decoration: none; letter-spacing: 1px;
  text-transform: uppercase; transition: color .15s, text-shadow .15s;
}
.ext-nav a:hover { color: var(--crt-green, #39ff14); text-shadow: 0 0 6px var(--crt-green, #39ff14); }
.ext-nav a.active { color: var(--hazard-yellow, #fce803); border-bottom: 2px solid var(--hazard-yellow, #fce803); }
