:root {
  --bg:      #09090f;
  --bg2:     #101018;
  --bg3:     #161620;
  --card:    #13131d;
  --border:  #222232;
  --gold:    #c8a84b;
  --gold2:   #e8c96a;
  --goldfade:rgba(200,168,75,0.12);
  --red:     #c0392b;
  --redfade: rgba(192,57,43,0.15);
  --green:   #2ecc71;
  --greenfade:rgba(46,204,113,0.12);
  --blue:    #3498db;
  --bluefade:rgba(52,152,219,0.12);
  --purple:  #9b59b6;
  --orange:  #e67e22;
  --orangefade:rgba(230,126,34,0.15);
  --text:    #ccc8be;
  --muted:   #55526a;
  --nav-h:   64px;
  --stats-h: 76px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html, body { height:100%; background:var(--bg); color:var(--text); font-family:'Crimson Pro',serif; overflow:hidden; }

/* ── CHAR SELECT ── */
#charSelect {
  position:fixed; inset:0; z-index:200;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:radial-gradient(ellipse at 50% 60%, #1a1020 0%, #09090f 65%);
  padding:2rem 1.5rem; gap:1.5rem;
}
.cs-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(3.5rem,15vw,5.5rem); letter-spacing:0.12em; color:var(--gold); text-shadow:0 0 60px rgba(200,168,75,0.35),0 3px 0 #000; line-height:1; }
.cs-sub { font-family:'Oswald',sans-serif; font-weight:300; font-size:0.7rem; letter-spacing:0.4em; color:var(--muted); text-transform:uppercase; margin-top:-1rem; }
.cs-chars { display:flex; gap:1rem; }
.cs-card { width:130px; background:var(--card); border:2px solid var(--border); border-radius:12px; padding:1.25rem 0.75rem; text-align:center; cursor:pointer; transition:all 0.2s; user-select:none; }
.cs-card.active { border-color:var(--gold); background:#1a1510; box-shadow:0 0 24px rgba(200,168,75,0.2); }
.cs-card .sprite { font-size:3rem; display:block; margin-bottom:0.5rem; }
.cs-card h3 { font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.12em; color:var(--gold); }
.cs-input-wrap { width:100%; max-width:280px; }
.cs-input-wrap label { display:block; font-family:'Oswald',sans-serif; font-size:0.65rem; letter-spacing:0.3em; color:var(--muted); text-transform:uppercase; margin-bottom:0.4rem; }
.cs-input-wrap input { width:100%; background:var(--card); border:1px solid var(--border); border-bottom:2px solid var(--gold); color:var(--gold2); font-family:'Crimson Pro',serif; font-size:1.2rem; padding:0.6rem 1rem; outline:none; border-radius:4px 4px 0 0; letter-spacing:0.05em; }
.cs-input-wrap input::placeholder { color:var(--muted); }
.btn-enter { width:100%; max-width:280px; font-family:'Bebas Neue',sans-serif; font-size:1.3rem; letter-spacing:0.2em; color:var(--bg); background:linear-gradient(135deg,var(--gold),var(--gold2)); border:none; padding:1rem; border-radius:10px; cursor:pointer; box-shadow:0 4px 20px rgba(200,168,75,0.3); transition:all 0.2s; user-select:none; }
.btn-enter:active { transform:scale(0.97); }

/* ── INTRO SEQUENCE ── */
#intro {
  position:fixed; inset:0; z-index:300;
  background:#000;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  padding-bottom:3rem;
}

.intro-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 30% 60%, rgba(200,100,20,0.08) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, rgba(20,20,80,0.4) 0%, transparent 60%),
    linear-gradient(180deg, #05050a 0%, #0a0810 40%, #0d0a08 100%);
  z-index:0;
}

/* city silhouette */
.intro-city {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background:
    linear-gradient(180deg, transparent 0%, #080810 100%);
  z-index:1;
  overflow:hidden;
}

.intro-city::before {
  content:'';
  position:absolute; bottom:30px; left:0; right:0; height:100%;
  background:
    /* building silhouettes via repeating pattern */
    repeating-linear-gradient(
      90deg,
      #0a0a14 0px, #0a0a14 30px,
      #080810 30px, #080810 35px,
      #0c0c18 35px, #0c0c18 80px,
      #080810 80px, #080810 85px,
      #0d0d1a 85px, #0d0d1a 120px,
      #080810 120px, #080810 125px,
      #0b0b16 125px, #0b0b16 160px,
      #080810 160px, #080810 165px
    );
  clip-path: polygon(
    0% 100%, 0% 60%, 2% 60%, 2% 40%, 5% 40%, 5% 55%, 8% 55%, 8% 30%, 12% 30%, 12% 50%, 15% 50%,
    15% 20%, 18% 20%, 18% 45%, 22% 45%, 22% 35%, 25% 35%, 25% 55%, 28% 55%, 28% 25%, 32% 25%,
    32% 50%, 35% 50%, 35% 40%, 38% 40%, 38% 60%, 42% 60%, 42% 30%, 45% 30%, 45% 45%, 48% 45%,
    48% 20%, 52% 20%, 52% 40%, 55% 40%, 55% 55%, 58% 55%, 58% 35%, 62% 35%, 62% 50%, 65% 50%,
    65% 25%, 68% 25%, 68% 45%, 72% 45%, 72% 40%, 75% 40%, 75% 60%, 78% 60%, 78% 30%, 82% 30%,
    82% 50%, 85% 50%, 85% 45%, 88% 45%, 88% 55%, 92% 55%, 92% 35%, 95% 35%, 95% 50%, 98% 50%,
    98% 60%, 100% 60%, 100% 100%
  );
}

/* neon glow on horizon */
.intro-glow {
  position:absolute; bottom:28px; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent 0%, rgba(200,168,75,0.2) 30%, rgba(200,168,75,0.4) 50%, rgba(200,168,75,0.2) 70%, transparent 100%);
  z-index:2;
  box-shadow: 0 0 30px 10px rgba(200,168,75,0.08);
}

.intro-npc {
  position:relative; z-index:3;
  display:flex; align-items:flex-end; gap:1rem;
  width:100%; max-width:420px;
  padding:0 1.5rem;
  margin-bottom:1rem;
}

.intro-npc-avatar {
  font-size:3.5rem;
  flex-shrink:0;
  filter:drop-shadow(0 0 20px rgba(200,168,75,0.3));
  animation:breathe 3s ease-in-out infinite;
}

@keyframes breathe {
  0%,100% { transform:translateY(0); }
  50%      { transform:translateY(-4px); }
}

.intro-npc-bubble {
  background:rgba(10,10,20,0.92);
  border:1px solid rgba(200,168,75,0.25);
  border-radius:12px 12px 12px 0;
  padding:1rem 1.25rem;
  flex:1;
  min-height:80px;
  display:flex; align-items:center;
  backdrop-filter:blur(8px);
}

.intro-npc-text {
  font-family:'Crimson Pro',serif;
  font-style:italic;
  font-size:1.05rem;
  color:var(--text);
  line-height:1.6;
}

.intro-npc-name {
  font-family:'Bebas Neue',sans-serif;
  font-size:0.7rem;
  letter-spacing:0.2em;
  color:var(--gold);
  margin-bottom:0.3rem;
}

.intro-tap {
  position:relative; z-index:3;
  font-family:'Oswald',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.3em;
  color:var(--muted);
  text-transform:uppercase;
  animation:pulse 2s ease-in-out infinite;
}

@keyframes pulse { 0%,100%{opacity:0.4} 50%{opacity:1} }

.intro-skip {
  position:absolute; top:1.2rem; right:1.2rem; z-index:4;
  font-family:'Oswald',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.2em;
  color:var(--muted);
  text-transform:uppercase;
  background:none; border:none; cursor:pointer;
  padding:0.5rem;
}

/* save indicator */
.save-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--green);
  display:inline-block;
  margin-left:4px;
  opacity:0;
  transition:opacity 0.3s;
}
.save-dot.visible { opacity:1; }

/* ── STREET FEED ── */
/* ── STREET REPORT CARD (top) ── */
.street-report-card {
  flex-shrink:0;
  margin:0.6rem 0.75rem 0;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
}

.street-report-header {
  padding:0.5rem 0.85rem;
  display:flex;
  align-items:center;
  gap:0.4rem;
  border-bottom:1px solid var(--border);
}

.street-report-header h3 {
  font-family:'Bebas Neue',sans-serif;
  font-size:0.85rem;
  letter-spacing:0.15em;
  color:var(--gold);
}

.street-report-log {
  padding:0.2rem 0;
  max-height:72px;
  overflow:hidden;
}

.street-report-log .log-entry {
  padding:0.25rem 0.85rem;
  font-family:'Oswald',sans-serif;
  font-size:0.68rem;
  color:var(--muted);
  letter-spacing:0.02em;
  line-height:1.4;
  border-bottom:1px solid rgba(34,34,50,0.4);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}

.street-report-log .log-entry:last-child { border-bottom:none; }
.street-report-log .log-entry.gold    { color:var(--gold); }
.street-report-log .log-entry.danger  { color:var(--red); }
.street-report-log .log-entry.success { color:var(--green); }

/* ── BIG SCENE ── */
.scene2 {
  flex:1;
  position:relative;
  overflow:hidden;
  background:#050510;
  min-height:0;
}

#cityCanvas {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}

/* Sky gradient */
.bg-sky {
  position:absolute; inset:0;
  background:linear-gradient(180deg, #05050d 0%, #0a0818 50%, #0d0a14 100%);
  z-index:0;
}

/* Far background — scrolls slowest */
.bg-far {
  position:absolute;
  bottom:0; left:0;
  width:400%;
  height:60%;
  z-index:1;
  will-change:transform;
}

/* Building layer — scrolls medium speed */
.bg-buildings {
  position:absolute;
  bottom:0; left:0;
  width:400%;
  height:70%;
  z-index:2;
  will-change:transform;
  display:flex;
  align-items:flex-end;
}

/* Ground strip */
.bg-ground-strip {
  position:absolute;
  bottom:0; left:0; right:0;
  height:55px;
  background:linear-gradient(180deg, #0d0d18 0%, #080810 100%);
  border-top:2px solid #1e1e32;
  z-index:3;
}

.bg-ground-strip::after {
  content:'';
  position:absolute;
  top:16px; left:0; right:0;
  height:1px;
  background:repeating-linear-gradient(90deg, #1e1e30 0, #1e1e30 30px, transparent 30px, transparent 60px);
  opacity:0.5;
}

/* Scene building tile */
.scene-bldg {
  position:relative;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.scene-bldg-body {
  width:100%;
  background:linear-gradient(180deg, #1a1a2e, #12121e);
  border-top:1px solid #252540;
  border-left:1px solid #1e1e35;
  border-right:1px solid #1e1e35;
  position:relative;
}

/* Windows on buildings */
.scene-bldg-body::before {
  content:'';
  position:absolute;
  inset:4px 6px;
  background:repeating-linear-gradient(
    0deg,
    transparent 0px, transparent 6px,
    rgba(200,168,75,0.04) 6px, rgba(200,168,75,0.04) 8px
  ),
  repeating-linear-gradient(
    90deg,
    transparent 0px, transparent 8px,
    rgba(200,168,75,0.04) 8px, rgba(200,168,75,0.04) 10px
  );
}

.scene-bldg-label {
  position:absolute;
  bottom:calc(100% + 4px);
  left:50%;
  transform:translateX(-50%);
  font-size:1.2rem;
  filter:drop-shadow(0 0 8px rgba(200,168,75,0.4));
  white-space:nowrap;
}

/* Income pop from building */
.bldg-income-pop {
  position:absolute;
  font-family:'Bebas Neue',sans-serif;
  font-size:0.8rem;
  color:var(--green);
  pointer-events:none;
  white-space:nowrap;
  animation:bldgFloat 1.8s ease-out forwards;
  z-index:10;
}

@keyframes bldgFloat {
  0%   { opacity:0; transform:translateY(0) translateX(-50%); }
  20%  { opacity:1; }
  100% { opacity:0; transform:translateY(-50px) translateX(-50%); }
}

/* Player */
.player2 {
  position:absolute;
  bottom:57px;
  left:22%;
  z-index:10;
  width:28px;
  height:48px;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,0.8));
}

@keyframes playerWalk {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-2px); }
}

/* Event NPC encounter */
.encounter-npc {
  position:absolute;
  bottom:57px;
  right:15%;
  z-index:10;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  animation:npcWalkIn 0.6s ease-out forwards;
}

@keyframes npcWalkIn {
  from { transform:translateX(120px); opacity:0; }
  to   { transform:translateX(0);     opacity:1; }
}

.encounter-npc-sprite {
  font-size:2.2rem;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,0.9));
  animation:npcBob 1s ease-in-out infinite;
}

@keyframes npcBob {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-4px); }
}

.encounter-npc-label {
  font-family:'Bebas Neue',sans-serif;
  font-size:0.75rem;
  letter-spacing:0.1em;
  color:var(--gold);
  background:rgba(0,0,0,0.7);
  padding:1px 6px;
  border-radius:4px;
  border:1px solid var(--gold);
  animation:labelPulse 1s ease-in-out infinite;
}

@keyframes labelPulse {
  0%,100% { opacity:1; }
  50%     { opacity:0.5; }
}

/* Income ticker */
.scene-income {
  position:absolute;
  top:8px; right:10px;
  font-family:'Bebas Neue',sans-serif;
  font-size:0.85rem;
  color:var(--green);
  letter-spacing:0.05em;
  z-index:15;
  text-shadow:0 0 10px rgba(46,204,113,0.4);
}

/* Float cash */
.float-container {
  position:absolute; inset:0;
  pointer-events:none;
  z-index:20;
}

.float-cash {
  position:absolute;
  font-family:'Bebas Neue',sans-serif;
  font-size:0.85rem;
  color:var(--green);
  pointer-events:none;
  animation:floatUp 1.4s ease-out forwards;
  text-shadow:0 0 8px rgba(46,204,113,0.6);
}

@keyframes floatUp {
  0%   { opacity:1; transform:translateY(0); }
  100% { opacity:0; transform:translateY(-55px); }
}

/* Jail scene overlay */
.scene-jail-overlay {
  position:absolute; inset:0;
  z-index:12;
  background:rgba(0,0,0,0.7);
  backdrop-filter:blur(3px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.scene-jail-inner {
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.3rem;
}

.scene-jail-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.4rem;
  letter-spacing:0.15em;
  color:var(--red);
}

.scene-jail-timer {
  font-family:'Bebas Neue',sans-serif;
  font-size:2rem;
  color:var(--red);
  letter-spacing:0.1em;
}

.scene-jail-sub {
  font-family:'Oswald',sans-serif;
  font-size:0.65rem;
  letter-spacing:0.15em;
  color:var(--muted);
  text-transform:uppercase;
}

/* Jail slim banner below scene */
.jail-banner-slim {
  position:fixed;
  bottom:calc(var(--nav-h) + var(--stats-h) + var(--safe-bottom) + 12px);
  left:0; right:0;
  z-index:48;
  background:rgba(12,5,5,0.96);
  border-top:1px solid var(--red);
  padding:0.35rem 1rem;
  display:flex;
  align-items:center;
  gap:0.5rem;
  font-family:'Oswald',sans-serif;
  font-size:0.68rem;
  color:var(--muted);
  backdrop-filter:blur(4px);
}

.jail-slim-timer {
  margin-left:auto;
  font-family:'Bebas Neue',sans-serif;
  font-size:0.9rem;
  color:var(--red);
}

/* Reset button */
.btn-reset {
  width:100%;
  font-family:'Oswald',sans-serif;
  font-size:0.8rem;
  letter-spacing:0.1em;
  padding:0.75rem;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--muted);
  border-radius:10px;
  cursor:pointer;
  transition:all 0.15s;
}
.btn-reset:active { border-color:var(--red); color:var(--red); }

/* DAILY REWARD POPUP */
#dailyPopup {
  position:fixed; inset:0; z-index:400;
  display:none; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.75);
  backdrop-filter:blur(4px);
}
#dailyPopup.open { display:flex; }
.daily-popup-inner {
  background:linear-gradient(135deg, #1a1208, #201808);
  border:1px solid var(--gold);
  border-radius:20px;
  padding:2.5rem 2rem;
  text-align:center;
  box-shadow:0 0 60px rgba(200,168,75,0.25);
  animation:popIn 0.35s cubic-bezier(0.34,1.56,0.64,1) forwards;
  max-width:300px; width:90%;
}
@keyframes popIn {
  from { opacity:0; transform:scale(0.7); }
  to   { opacity:1; transform:scale(1); }
}
.daily-popup-icon { font-size:3.5rem; display:block; margin-bottom:0.75rem; }
.daily-popup-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.5rem; letter-spacing:0.15em;
  color:var(--gold); margin-bottom:0.25rem;
}
.daily-popup-amount {
  font-family:'Bebas Neue',sans-serif;
  font-size:2.5rem; letter-spacing:0.1em;
  color:var(--green); margin-bottom:0.5rem;
}
.daily-popup-sub {
  font-family:'Oswald',sans-serif;
  font-size:0.7rem; letter-spacing:0.2em;
  color:var(--muted); text-transform:uppercase;
  margin-bottom:1.5rem;
}
.daily-popup-btn {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.1rem; letter-spacing:0.15em;
  color:var(--bg);
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  border:none; padding:0.75rem 2rem;
  border-radius:10px; cursor:pointer;
  width:100%;
  transition:transform 0.15s;
}
.daily-popup-btn:active { transform:scale(0.97); }

/* ── APP SHELL ── */
#app { display:none; flex-direction:column; height:100%; position:fixed; inset:0; }

/* TOP BAR */
/* tb-stat used in bottom stats bar */
.tb-stat { display:flex; flex-direction:column; align-items:flex-end; }
.tb-stat-label { font-family:'Oswald',sans-serif; font-size:0.55rem; letter-spacing:0.2em; color:var(--muted); text-transform:uppercase; }
.tb-stat-val { font-family:'Bebas Neue',sans-serif; font-size:1rem; color:var(--gold); letter-spacing:0.05em; line-height:1.1; }
.tb-stat-val.green { color:var(--green); }
.tb-stat-val.red   { color:var(--red); }
.tb-stat-val.orange{ color:var(--orange); }

/* HEAT BAR */
.heat-bar { flex:1; height:4px; background:var(--border); border-radius:3px; overflow:hidden; }
.heat-fill { height:100%; border-radius:3px; transition:width 0.5s ease, background 0.5s ease; }
.heat-txt { font-family:'Oswald',sans-serif; font-size:0.55rem; color:var(--muted); flex-shrink:0; min-width:28px; text-align:right; }

/* XP BAR */
.xp-bar { flex:1; height:4px; background:var(--border); border-radius:3px; overflow:hidden; }
.xp-fill { height:100%; background:linear-gradient(90deg,#7c3fbf,#b06ce8); border-radius:3px; transition:width 0.4s ease; }
.xp-txt { font-family:'Oswald',sans-serif; font-size:0.55rem; color:var(--muted); flex-shrink:0; }

/* TABS */
.tabs { flex:1; overflow:hidden; position:relative; }
.tab-pane { display:none; flex-direction:column; height:100%; overflow-y:auto; -webkit-overflow-scrolling:touch; padding-bottom:calc(var(--nav-h) + var(--stats-h) + var(--safe-bottom) + 12px); }
.tab-pane.active { display:flex; }

/* BOTTOM NAV */
/* BOTTOM STATS BAR */
.bottom-stats-bar {
  position:fixed;
  bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px);
  left:0; right:0;
  height:var(--stats-h);
  background:linear-gradient(180deg, #0e0c1a 0%, #0a0812 100%);
  border-top:2px solid rgba(200,168,75,0.2);
  z-index:49;
  padding:0.25rem 0.75rem 0.4rem;
  display:flex;
  flex-direction:column;
  gap:0.15rem;
  box-shadow:0 -2px 12px rgba(0,0,0,0.4);
}

.bsb-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.5rem;
}

.bsb-name {
  font-family:'Bebas Neue',sans-serif;
  font-size:0.95rem;
  letter-spacing:0.12em;
  color:var(--gold);
  flex-shrink:0;
}

.bsb-stats {
  display:flex;
  gap:0.75rem;
  align-items:center;
}

.bsb-bars {
  display:flex;
  flex-direction:column;
  gap:0.15rem;
}

.bsb-bar-row {
  display:flex;
  align-items:center;
  gap:0.4rem;
}

.bsb-bar-label {
  font-family:'Oswald',sans-serif;
  font-size:0.55rem;
  letter-spacing:0.15em;
  color:var(--muted);
  text-transform:uppercase;
  flex-shrink:0;
  width:16px;
  text-align:center;
}

/* BOTTOM NAV */
.bottom-nav {
  flex-shrink:0; position:fixed; bottom:0; left:0; right:0;
  height:calc(var(--nav-h) + var(--safe-bottom) + 12px);
  padding-bottom:calc(var(--safe-bottom) + 12px);
  background:linear-gradient(180deg, #12101e 0%, #0a0812 100%);
  border-top:2px solid rgba(200,168,75,0.25);
  display:flex; z-index:50;
  gap:5px; padding-left:6px; padding-right:6px;
  align-items:flex-start; padding-top:5px;
  box-shadow:0 -4px 20px rgba(0,0,0,0.6);
}
.nav-item {
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; cursor:pointer; user-select:none; position:relative;
  background:linear-gradient(180deg, #1a1828 0%, #110f1e 100%);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:12px; padding:7px 0;
  transition:all 0.12s;
  box-shadow:0 2px 4px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04);
}
.nav-item:active { transform:scale(0.93); box-shadow:0 1px 2px rgba(0,0,0,0.4); }
.nav-item .nav-icon { font-size:1.35rem; transition:transform 0.12s; }
.nav-item .nav-label {
  font-family:'Bebas Neue',sans-serif; font-size:0.6rem;
  letter-spacing:0.12em; color:var(--muted); text-transform:uppercase;
}
.nav-item.active {
  background:linear-gradient(180deg, #1e1a10 0%, #151008 100%);
  border-color:rgba(200,168,75,0.3);
  box-shadow:0 2px 8px rgba(200,168,75,0.15), 0 2px 4px rgba(0,0,0,0.4), inset 0 1px 0 rgba(200,168,75,0.1);
}
.nav-item.active .nav-label { color:var(--gold); }
.nav-item.active .nav-icon { filter:drop-shadow(0 0 8px rgba(200,168,75,0.7)); transform:translateY(-1px); }
.nav-badge {
  position:absolute; top:2px; right:calc(50% - 18px);
  background:var(--red); color:#fff;
  font-family:'Bebas Neue',sans-serif; font-size:0.55rem; font-weight:600;
  border-radius:8px; padding:1px 5px; min-width:16px; text-align:center;
  box-shadow:0 0 6px rgba(192,57,43,0.5);
}

/* ── CITY TAB ── */
.scene { flex-shrink:0; height:200px; background:linear-gradient(180deg,#080810 0%,#0e0e1a 50%,#12100a 100%); position:relative; overflow:hidden; }
.skyline { position:absolute; bottom:60px; left:0; right:0; display:flex; align-items:flex-end; gap:2px; padding:0 10px; opacity:0.3; }
.sb { background:#1a1a2e; border-top:1px solid #252540; flex-shrink:0; }
.ground { position:absolute; bottom:0; left:0; right:0; height:60px; background:linear-gradient(180deg,#0d0d18 0%,#07070f 100%); border-top:1px solid #1e1e30; }
.ground::after { content:''; position:absolute; top:18px; left:0; right:0; height:1px; background:repeating-linear-gradient(90deg,#1e1e30 0,#1e1e30 30px,transparent 30px,transparent 60px); }
.slight { position:absolute; bottom:60px; width:3px; background:#1e1e30; }
.slight::after { content:''; position:absolute; top:-6px; left:-8px; width:19px; height:6px; background:rgba(200,168,75,0.1); border-radius:50%; box-shadow:0 0 18px 8px rgba(200,168,75,0.06); }
.char { position:absolute; bottom:62px; font-size:2.2rem; z-index:10; filter:drop-shadow(0 3px 6px rgba(0,0,0,0.9)); transition:left 3s linear; }
.char.walking { animation:walk 0.5s steps(1) infinite; }
@keyframes walk { 0%,49% { transform:scaleX(1) translateY(0); } 25% { transform:scaleX(1) translateY(-2px); } 50%,99% { transform:scaleX(-1) translateY(0); } 75% { transform:scaleX(-1) translateY(-2px); } }
.float-cash { position:absolute; font-family:'Bebas Neue',sans-serif; font-size:0.85rem; color:var(--green); pointer-events:none; z-index:20; animation:floatUp 1.4s ease-out forwards; }
@keyframes floatUp { 0% { opacity:1; transform:translateY(0); } 100% { opacity:0; transform:translateY(-50px); } }
.scene-ticker { position:absolute; top:10px; right:10px; font-family:'Bebas Neue',sans-serif; font-size:0.9rem; color:var(--green); letter-spacing:0.05em; }

/* JAIL BANNER */
.jail-banner { margin:0.75rem; background:linear-gradient(135deg,#1a0808,#200808); border:1px solid var(--red); border-radius:12px; padding:1rem; box-shadow:0 0 20px rgba(192,57,43,0.15); }
.jail-banner h4 { font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.12em; color:var(--red); margin-bottom:0.3rem; }
.jail-banner p { font-family:'Oswald',sans-serif; font-size:0.72rem; color:var(--muted); letter-spacing:0.03em; margin-bottom:0.75rem; line-height:1.5; }
.jail-timer { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; color:var(--red); letter-spacing:0.1em; }

/* DAILY CARD */
.daily-card { margin:0.75rem; background:linear-gradient(135deg,#1a1208,#201808); border:1px solid var(--gold); border-radius:12px; padding:1rem; display:flex; align-items:center; gap:0.75rem; box-shadow:0 0 20px rgba(200,168,75,0.1); }
.daily-icon { font-size:2rem; flex-shrink:0; }
.daily-text { flex:1; }
.daily-text h4 { font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.1em; color:var(--gold); }
.daily-text p { font-family:'Oswald',sans-serif; font-size:0.7rem; color:var(--muted); letter-spacing:0.05em; }
.btn-collect { font-family:'Bebas Neue',sans-serif; font-size:0.9rem; letter-spacing:0.1em; color:var(--bg); background:linear-gradient(135deg,var(--gold),var(--gold2)); border:none; padding:0.5rem 1rem; border-radius:8px; cursor:pointer; flex-shrink:0; transition:all 0.15s; }
.btn-collect:active { transform:scale(0.95); }
.btn-collect:disabled { background:var(--border); color:var(--muted); cursor:default; }

/* SECTION CARD / LOG */
.section-card { margin:0 0.75rem 0.75rem; background:var(--card); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.section-header { padding:0.75rem 1rem; display:flex; align-items:center; gap:0.5rem; border-bottom:1px solid var(--border); }
.section-header h3 { font-family:'Bebas Neue',sans-serif; font-size:0.95rem; letter-spacing:0.15em; color:var(--gold); }
.log-list { padding:0.5rem 0; }
.log-entry { padding:0.35rem 1rem; font-family:'Oswald',sans-serif; font-size:0.72rem; color:var(--muted); letter-spacing:0.02em; line-height:1.5; border-bottom:1px solid rgba(34,34,50,0.5); }
.log-entry:last-child { border-bottom:none; }
.log-entry.gold { color:var(--gold); }
.log-entry.danger { color:var(--red); }
.log-entry.success { color:var(--green); }

/* ── EVENT MODAL ── */
#eventOverlay {
  position:fixed; inset:0; z-index:300;
  background:rgba(0,0,0,0.75);
  display:none; align-items:flex-end; justify-content:center;
  backdrop-filter:blur(3px);
}
#eventOverlay.open { display:flex; }

.event-sheet {
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:20px 20px 0 0;
  width:100%; max-width:520px;
  padding:1.5rem 1.25rem calc(2rem + var(--safe-bottom));
  animation:slideUp 0.3s ease;
  max-height:85vh;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

@keyframes slideUp { from { transform:translateY(100%); } to { transform:translateY(0); } }

.event-sheet-header { display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:1rem; }
.event-sheet-icon { font-size:2.5rem; flex-shrink:0; }
.event-sheet-meta { flex:1; }
.event-sheet-type { font-family:'Oswald',sans-serif; font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--muted); margin-bottom:0.2rem; }
.event-sheet-title { font-family:'Bebas Neue',sans-serif; font-size:1.3rem; letter-spacing:0.08em; color:var(--gold); }
.event-timer { font-family:'Bebas Neue',sans-serif; font-size:1rem; color:var(--red); letter-spacing:0.05em; flex-shrink:0; }

.event-story {
  font-family:'Crimson Pro',serif;
  font-style:italic;
  font-size:1rem;
  color:var(--text);
  line-height:1.6;
  margin-bottom:1.25rem;
  padding:0.75rem;
  background:var(--bg3);
  border-radius:8px;
  border-left:3px solid var(--gold);
}

.event-choices { display:flex; flex-direction:column; gap:0.5rem; }

.choice-btn {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:10px;
  padding:0.85rem 1rem;
  text-align:left;
  cursor:pointer;
  transition:all 0.15s;
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}
.choice-btn:active { transform:scale(0.98); }
.choice-btn.risk-low:hover, .choice-btn.risk-low:active  { border-color:var(--green); }
.choice-btn.risk-med:hover, .choice-btn.risk-med:active  { border-color:var(--gold); }
.choice-btn.risk-high:hover,.choice-btn.risk-high:active { border-color:var(--red); }

.choice-label { font-family:'Oswald',sans-serif; font-size:0.9rem; font-weight:600; color:var(--text); }
.choice-sub { font-family:'Oswald',sans-serif; font-size:0.65rem; color:var(--muted); }
.choice-sub.green { color:var(--green); }
.choice-sub.red   { color:var(--red); }
.choice-sub.orange{ color:var(--orange); }

/* EVENT OUTCOME */
.outcome-box {
  background:var(--bg3);
  border-radius:10px;
  padding:1rem;
  margin-bottom:1rem;
  text-align:center;
}
.outcome-icon { font-size:2.5rem; display:block; margin-bottom:0.5rem; }
.outcome-title { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.1em; }
.outcome-title.win  { color:var(--green); }
.outcome-title.lose { color:var(--red); }
.outcome-title.jail { color:var(--red); }
.outcome-desc { font-family:'Oswald',sans-serif; font-size:0.75rem; color:var(--muted); margin-top:0.25rem; line-height:1.5; }
.btn-dismiss { width:100%; font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.15em; padding:0.75rem; border-radius:10px; border:1px solid var(--border); background:var(--card); color:var(--text); cursor:pointer; }
.btn-dismiss:active { background:var(--bg3); }

/* ── EMPIRE TAB ── */
.empire-header { padding:1rem; display:flex; flex-direction:column; gap:0.25rem; }
.empire-header h2 { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.1em; color:var(--gold); }
.empire-header p { font-family:'Oswald',sans-serif; font-size:0.7rem; color:var(--muted); letter-spacing:0.05em; }
.tier-label { padding:0.4rem 1rem; font-family:'Oswald',sans-serif; font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--muted); }
.bldg-card { margin:0 0.75rem 0.5rem; background:var(--card); border:1px solid var(--border); border-radius:12px; padding:0.9rem; display:flex; align-items:center; gap:0.75rem; transition:border-color 0.15s; position:relative; overflow:hidden; }
.bldg-card.owned { border-color:rgba(200,168,75,0.3); }
.bldg-card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,transparent 70%,rgba(200,168,75,0.03)); pointer-events:none; }
.bldg-icon { font-size:2rem; flex-shrink:0; }
.bldg-info { flex:1; min-width:0; }
.bldg-name { font-family:'Oswald',sans-serif; font-size:0.9rem; font-weight:600; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bldg-income { font-family:'Oswald',sans-serif; font-size:0.68rem; color:var(--green); margin-top:2px; }
.bldg-meta { display:flex; gap:0.5rem; margin-top:3px; align-items:center; }
.bldg-owned { font-family:'Oswald',sans-serif; font-size:0.6rem; color:var(--muted); }
.tier-pill { font-family:'Oswald',sans-serif; font-size:0.55rem; letter-spacing:0.1em; padding:1px 6px; border-radius:4px; text-transform:uppercase; }
.tier-pill.sec  { background:var(--bluefade);  color:var(--blue); }
.tier-pill.day  { background:var(--goldfade);  color:var(--gold); }
.tier-pill.week { background:var(--redfade);   color:var(--red); }
.btn-buy { font-family:'Bebas Neue',sans-serif; font-size:0.85rem; letter-spacing:0.08em; padding:0.55rem 0.85rem; border:1px solid var(--gold); background:transparent; color:var(--gold); border-radius:8px; cursor:pointer; flex-shrink:0; transition:all 0.15s; white-space:nowrap; }
.btn-buy:active:not(:disabled) { background:var(--goldfade); }
.btn-buy:disabled { border-color:var(--border); color:var(--muted); cursor:default; }
.btn-payout { font-family:'Bebas Neue',sans-serif; font-size:0.75rem; letter-spacing:0.08em; padding:0.4rem 0.7rem; border:1px solid var(--green); background:var(--greenfade); color:var(--green); border-radius:8px; cursor:pointer; flex-shrink:0; transition:all 0.15s; white-space:nowrap; display:flex; flex-direction:column; align-items:center; gap:1px; }
.btn-payout .countdown { font-family:'Oswald',sans-serif; font-size:0.55rem; color:var(--muted); font-weight:300; }
.btn-payout:disabled { border-color:var(--border); background:transparent; color:var(--muted); cursor:default; }

/* ── MISSIONS TAB ── */
.mission-card { margin:0 0.75rem 0.5rem; background:var(--card); border:1px solid var(--border); border-radius:12px; padding:1rem; }
.mission-top { display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:0.75rem; }
.mission-icon { font-size:1.8rem; flex-shrink:0; }
.mission-info { flex:1; }
.mission-name { font-family:'Oswald',sans-serif; font-size:0.9rem; font-weight:600; color:var(--text); }
.mission-desc { font-family:'Crimson Pro',serif; font-style:italic; font-size:0.85rem; color:var(--muted); margin-top:2px; }
.mission-rewards { display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:0.75rem; }
.reward-pill { font-family:'Oswald',sans-serif; font-size:0.65rem; letter-spacing:0.05em; padding:2px 8px; border-radius:6px; }
.reward-pill.cash  { background:var(--greenfade); color:var(--green); }
.reward-pill.xp    { background:rgba(155,89,182,0.15); color:var(--purple); }
.reward-pill.risk  { background:var(--redfade); color:var(--red); }
.reward-pill.catch { background:var(--orangefade); color:var(--orange); }
.mission-progress { height:4px; background:var(--border); border-radius:3px; overflow:hidden; margin-bottom:0.6rem; }
.mission-progress-fill { height:100%; background:linear-gradient(90deg,var(--gold),var(--gold2)); border-radius:3px; transition:width 0.3s ease; }
.btn-mission { width:100%; font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.15em; padding:0.65rem; border-radius:8px; cursor:pointer; border:none; transition:all 0.15s; }
.btn-mission.go     { background:linear-gradient(135deg,var(--gold),var(--gold2)); color:var(--bg); }
.btn-mission.active { background:var(--bg3); border:1px solid var(--border); color:var(--muted); }
.btn-mission.locked { background:var(--redfade); border:1px solid var(--red); color:var(--red); }
.btn-mission:active:not(.active):not(.locked) { transform:scale(0.98); }

.missions-jailed { margin:0.75rem; background:var(--redfade); border:1px solid var(--red); border-radius:12px; padding:1rem; }
.missions-jailed h3 { font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.1em; color:var(--red); margin-bottom:0.25rem; }
.missions-jailed p { font-family:'Oswald',sans-serif; font-size:0.72rem; color:var(--muted); }

/* ── PROFILE TAB ── */
.profile-hero { background:linear-gradient(135deg,#12101a,#1a1008); border-bottom:1px solid var(--border); padding:1.5rem 1rem; display:flex; align-items:center; gap:1rem; }
.profile-avatar { width:80px; height:80px; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.8)); flex-shrink:0; }
.profile-details h2 { font-family:'Bebas Neue',sans-serif; font-size:1.6rem; letter-spacing:0.1em; color:var(--gold); }
.profile-rank { font-family:'Oswald',sans-serif; font-size:0.7rem; letter-spacing:0.2em; color:var(--purple); text-transform:uppercase; }
.stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.5rem; margin:0.75rem; }
.stat-box { background:var(--card); border:1px solid var(--border); border-radius:10px; padding:0.75rem; }
.stat-box-label { font-family:'Oswald',sans-serif; font-size:0.6rem; letter-spacing:0.2em; color:var(--muted); text-transform:uppercase; margin-bottom:0.2rem; }
.stat-box-val { font-family:'Bebas Neue',sans-serif; font-size:1.3rem; color:var(--gold); letter-spacing:0.05em; }

/* ── SHARED ── */
.levelup-flash { position:fixed; inset:0; background:rgba(200,168,75,0.08); pointer-events:none; z-index:999; animation:lvlflash 0.8s ease-out forwards; }
@keyframes lvlflash { 0% { opacity:1; } 100% { opacity:0; } }
.toast { position:fixed; bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px); left:50%; transform:translateX(-50%); background:var(--card); border:1px solid var(--gold); border-radius:10px; padding:0.6rem 1.2rem; font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.1em; color:var(--gold); z-index:500; white-space:nowrap; animation:toastIn 2.5s ease forwards; pointer-events:none; }
@keyframes toastIn { 0% { opacity:0; transform:translateX(-50%) translateY(10px); } 15% { opacity:1; transform:translateX(-50%) translateY(0); } 75% { opacity:1; } 100% { opacity:0; transform:translateX(-50%) translateY(-5px); } }
/* ══════════════════════════════
   VISUAL OVERHAUL — ATMOSPHERIC
══════════════════════════════ */

/* Rain effect */
.rain-layer {
  position:absolute; inset:0;
  pointer-events:none;
  z-index:4;
  overflow:hidden;
}
.rain-layer::before, .rain-layer::after {
  content:'';
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(
      180deg,
      transparent 0px,
      transparent 4px,
      rgba(174,214,241,0.04) 4px,
      rgba(174,214,241,0.04) 5px
    );
  background-size: 3px 20px;
  animation: rainFall 0.4s linear infinite;
}
.rain-layer::after {
  background-size: 5px 30px;
  animation: rainFall 0.6s linear infinite;
  opacity: 0.5;
}
@keyframes rainFall {
  0%   { transform: translateY(-20px); }
  100% { transform: translateY(20px); }
}

/* Neon streetlights in scene */
.neon-light {
  position:absolute;
  bottom:55px;
  width:3px;
  background:linear-gradient(180deg, #2a2a40, #1a1a2e);
  z-index:5;
}
.neon-light::before {
  content:'';
  position:absolute;
  top:-8px; left:-5px;
  width:13px; height:8px;
  background:rgba(200,168,75,0.15);
  border-radius:50%;
  box-shadow:
    0 0 12px 6px rgba(200,168,75,0.12),
    0 0 30px 15px rgba(200,168,75,0.05);
}
.neon-light::after {
  content:'';
  position:absolute;
  top:0; left:-1px;
  width:5px; height:40%;
  background:linear-gradient(180deg, rgba(200,168,75,0.08), transparent);
}

/* CSS pixel-art character */
.player2 {
  position:absolute;
  bottom:55px;
  left:22%;
  z-index:10;
  width:20px;
  height:52px;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,0.8));
  animation:charWalk 0.45s ease-in-out infinite;
}

/* 2D side-view character — all parts flat, left-to-right perspective */
.char-head {
  position:absolute;
  left:3px; top:0;
  width:14px; height:13px;
  background:#c8a47a;
  border-radius:45% 55% 40% 40%;
}
/* Hat */
.char-head::before {
  content:'';
  position:absolute;
  top:-6px; left:-2px;
  width:18px; height:7px;
  background:#1a1a1a;
  border-radius:3px 3px 0 0;
}
/* Hat brim */
.char-head::after {
  content:'';
  position:absolute;
  top:-1px; left:-3px;
  width:20px; height:3px;
  background:#111;
  border-radius:1px;
}

.char-body {
  position:absolute;
  left:2px; top:13px;
  width:16px; height:20px;
  background:linear-gradient(135deg, #2c3e50 0%, #1e2d3d 100%);
  border-radius:2px 3px 2px 2px;
}

/* Coat detail */
.char-body::before {
  content:'';
  position:absolute;
  left:6px; top:3px;
  width:3px; height:12px;
  background:rgba(0,0,0,0.2);
  border-radius:1px;
}

.char-arms {
  position:absolute;
  left:0; top:14px;
  width:20px; height:20px;
}

/* Single visible arm (side view — only one arm visible) */
.char-arm.l {
  position:absolute;
  left:-3px; top:0;
  width:5px; height:13px;
  background:#243342;
  border-radius:2px;
  transform-origin:top center;
  animation:armSwing 0.45s ease-in-out infinite;
}

/* Back arm hint */
.char-arm.r {
  position:absolute;
  left:14px; top:2px;
  width:4px; height:11px;
  background:#1a2530;
  border-radius:2px;
  transform-origin:top center;
  animation:armSwing 0.45s ease-in-out infinite reverse;
}

.char-legs {
  position:absolute;
  left:2px; top:33px;
  width:16px; height:19px;
}

/* Front leg — side view, swings forward/back via translateX */
.char-leg.l {
  position:absolute;
  left:0px; top:0;
  width:7px; height:19px;
  background:#162030;
  border-radius:0 0 3px 2px;
  transform-origin:top center;
  animation:legFront 0.45s ease-in-out infinite;
}

/* Back leg — slightly lighter, offset */
.char-leg.r {
  position:absolute;
  left:7px; top:0;
  width:6px; height:17px;
  background:#0e1822;
  border-radius:0 0 2px 2px;
  transform-origin:top center;
  animation:legBack 0.45s ease-in-out infinite;
}

/* Shoe on front leg */
.char-leg.l::after {
  content:'';
  position:absolute;
  bottom:-1px; left:-2px;
  width:10px; height:4px;
  background:#0a0a0a;
  border-radius:0 3px 3px 0;
}

@keyframes charWalk {
  0%,100% { transform:translateY(0); }
  25%,75% { transform:translateY(-1px); }
}

/* Legs swing forward/back in 2D — translateX for side-view stepping */
@keyframes legFront {
  0%,100% { transform:translateX(2px) skewX(-8deg); }
  50%     { transform:translateX(-3px) skewX(8deg); }
}
@keyframes legBack {
  0%,100% { transform:translateX(-2px) skewX(5deg); }
  50%     { transform:translateX(2px) skewX(-5deg); }
}
@keyframes armSwing {
  0%,100% { transform:translateX(2px) rotate(-10deg); }
  50%     { transform:translateX(-2px) rotate(10deg); }
}

/* Jailed */
.player2.jailed .char-body { background:#3a2515; }
.player2.jailed .char-leg.l { background:#2a1a0f; }
.player2.jailed .char-leg.r { background:#1e1208; }
.player2.jailed { filter:drop-shadow(0 4px 12px rgba(0,0,0,0.9)) grayscale(0.6) brightness(0.7); }

/* Enhanced ground */
.bg-ground-strip {
  position:absolute;
  bottom:0; left:0; right:0;
  height:55px;
  background:linear-gradient(180deg, #0d0d1c 0%, #050508 100%);
  border-top:2px solid #1a1a32;
  z-index:3;
}
.bg-ground-strip::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(200,168,75,0.15), transparent);
}
.bg-ground-strip::after {
  content:'';
  position:absolute;
  top:20px; left:0; right:0;
  height:1px;
  background:repeating-linear-gradient(90deg, #1e1e32 0, #1e1e32 30px, transparent 30px, transparent 60px);
  opacity:0.4;
}

/* Heat pulse on scene when critical */
.scene2.heat-critical {
  box-shadow:inset 0 0 60px rgba(192,57,43,0.08);
}

/* Better building tiles */
.scene-bldg-body {
  background:linear-gradient(180deg, #151525 0%, #0d0d18 100%);
  border-top:2px solid #252540;
  border-left:1px solid #1a1a30;
  border-right:1px solid #1a1a30;
  position:relative;
  overflow:hidden;
}

/* Window grid on buildings */
.scene-bldg-body::after {
  content:'';
  position:absolute;
  inset:5px 8px;
  background-image:
    repeating-linear-gradient(0deg, transparent 0, transparent 7px, rgba(200,168,75,0.07) 7px, rgba(200,168,75,0.07) 9px),
    repeating-linear-gradient(90deg, transparent 0, transparent 9px, rgba(200,168,75,0.07) 9px, rgba(200,168,75,0.07) 11px);
  border-radius:2px;
}

/* Neon sign on owned buildings */
.scene-bldg-sign {
  position:absolute;
  top:10px; left:50%;
  transform:translateX(-50%);
  font-size:0.5rem;
  font-family:'Bebas Neue',sans-serif;
  letter-spacing:0.1em;
  color:rgba(200,168,75,0.7);
  text-shadow:0 0 6px rgba(200,168,75,0.5);
  white-space:nowrap;
  animation:signFlicker 4s ease-in-out infinite;
}
@keyframes signFlicker {
  0%,90%,100% { opacity:0.7; }
  92%         { opacity:0.2; }
  94%         { opacity:0.7; }
  96%         { opacity:0.3; }
}

/* Nav active indicator */
.nav-item.active::after {
  content:'';
  position:absolute;
  bottom:-1px; left:25%; right:25%;
  height:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  border-radius:3px 3px 0 0;
  box-shadow:0 0 10px rgba(200,168,75,0.5);
}

/* Better mission cards */
.mission-card {
  background:linear-gradient(135deg, #13131d, #0f0f18) !important;
  border:1px solid var(--border) !important;
  position:relative;
  overflow:hidden;
}
.mission-card::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,168,75,0.15), transparent);
}

/* Better building cards */
.bldg-card {
  background:linear-gradient(135deg, #13131d, #0f0f18) !important;
}
.bldg-card.owned {
  border-color:rgba(200,168,75,0.25) !important;
  box-shadow:0 0 15px rgba(200,168,75,0.04);
}

/* Glow on gold values */
.tb-stat-val { text-shadow:0 0 12px rgba(200,168,75,0.2); }
.tb-stat-val.green { text-shadow:0 0 12px rgba(46,204,113,0.2); }

/* Better event sheet */
.event-sheet {
  background:linear-gradient(180deg, #13131d, #0f0f18) !important;
  border:1px solid rgba(200,168,75,0.2) !important;
  box-shadow:0 -20px 60px rgba(0,0,0,0.8);
}

/* Pull tab on event sheet */
.event-sheet::before {
  content:'';
  display:block;
  width:40px; height:4px;
  background:rgba(200,168,75,0.3);
  border-radius:2px;
  margin:0 auto 1.2rem;
}

/* Better profile hero */
.profile-hero {
  background:linear-gradient(135deg, #0f0d1a, #150f08) !important;
  border-bottom:1px solid rgba(200,168,75,0.15) !important;
  position:relative;
  overflow:hidden;
}
.profile-hero::after {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 80% 50%, rgba(200,168,75,0.06), transparent 60%);
  pointer-events:none;
}

/* Street report card glow */
.street-report-card {
  box-shadow:0 2px 20px rgba(0,0,0,0.4);
  border:1px solid rgba(200,168,75,0.15) !important;
  background:linear-gradient(135deg, #13131d, #0f0f18) !important;
}

/* Ambient scene glow */
.scene2::after {
  content:'';
  position:absolute;
  bottom:0; left:0; right:0;
  height:80px;
  background:linear-gradient(0deg, rgba(200,168,75,0.03), transparent);
  z-index:6;
  pointer-events:none;
}

/* Better daily popup */
.daily-popup-inner {
  background:linear-gradient(135deg, #1a1208, #201a08) !important;
  border:1px solid rgba(200,168,75,0.4) !important;
  box-shadow:0 0 80px rgba(200,168,75,0.15), 0 20px 60px rgba(0,0,0,0.8);
}

/* Smoother btn-mission */
.btn-mission.go {
  background:linear-gradient(135deg, #b8922a, #e8c96a) !important;
  box-shadow:0 4px 15px rgba(200,168,75,0.25);
  letter-spacing:0.12em;
}
.btn-mission.done {
  box-shadow:0 4px 15px rgba(46,204,113,0.15);
}

/* Intro improvements */
.intro-npc-bubble {
  background:rgba(8,8,18,0.95) !important;
  border:1px solid rgba(200,168,75,0.2) !important;
  box-shadow:0 8px 30px rgba(0,0,0,0.6);
}
