:root{
  --bg:#241a12;
  --bg2:#2f2318;
  --paper:#ead9b8;
  --paper-dim:#c9b892;
  --ember:#e0862a;
  --ember-hot:#ff9d3c;
  --smoke:#8d8378;
  --ink:#1a120b;
  --jade:#7fae8b;
  --danger:#c25b4a;
  --card:#31251a;
  --line:#4a3826;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--paper);
  font-family:Georgia,'Times New Roman',serif;
  min-height:100vh;
  overflow-x:hidden;
}
/* атмосферный слой-сцена, меняется по локациям */
#scene{
  position:fixed;inset:0;z-index:-1;
  background:radial-gradient(1200px 600px at 70% -10%, #3a2b1c 0%, transparent 60%), var(--bg);
  transition:background 1.6s ease;
}
.mono{font-family:'Courier New',monospace}

header{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:18px 22px 10px;border-bottom:1px solid var(--line);
}
header h1{
  font-size:clamp(22px,4vw,34px);letter-spacing:.06em;font-weight:normal;
  font-style:italic;
}
header h1 span{color:var(--ember)}
.hd-btns{display:flex;gap:8px;align-items:center}
#musicBtn,#resetBtn{
  background:none;border:1px solid var(--line);color:var(--paper-dim);
  padding:6px 14px;border-radius:20px;cursor:pointer;font-family:inherit;
  font-size:13px;transition:.2s;
}
#musicBtn:hover{border-color:var(--ember);color:var(--ember)}
#musicBtn.on{border-color:var(--ember);color:var(--ember)}
#resetBtn{padding:6px 12px;font-size:12px;color:var(--smoke)}
#resetBtn:hover{border-color:var(--danger);color:var(--danger)}

.layout{
  display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(280px,1fr);
  gap:0;max-width:1100px;margin:0 auto;
}
@media(max-width:760px){.layout{grid-template-columns:1fr}}

/* ---- левая часть: стол ---- */
.table{
  padding:26px 22px;position:relative;min-height:60vh;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
#offlineBanner{
  display:none;width:100%;border:1px solid var(--jade);border-radius:10px;
  padding:10px 14px;font-size:13.5px;color:var(--paper);background:rgba(127,174,139,.08);
  align-items:center;justify-content:space-between;gap:10px;
}
#offlineBanner.show{display:flex}
#offlineBanner b{color:var(--jade);font-family:'Courier New',monospace}
#offlineBanner button{
  background:none;border:none;color:var(--smoke);cursor:pointer;font-size:18px;
  line-height:1;padding:0 4px;font-family:inherit;
}
#offlineBanner button:hover{color:var(--paper)}
.stats{width:100%;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.stat{font-size:13px;color:var(--paper-dim);letter-spacing:.04em}
.stat b{display:block;font-size:22px;color:var(--paper);font-family:'Courier New',monospace}
.stat.money b{color:var(--ember-hot)}

#cig{
  margin-top:24px;
  width:min(340px,86%);height:64px;position:relative;cursor:pointer;
  user-select:none;-webkit-user-select:none;touch-action:manipulation;
  transition:transform .06s;
}
#cig:active{transform:scale(.97) rotate(-1deg)}
/* увеличенная хит-зона для пальца, без изменения визуала бумаги */
#cig::before{content:'';position:absolute;inset:-26px -14px;z-index:1}
@media(max-width:760px){
  #cig{height:76px;width:min(360px,94%)}
  #cig::before{inset:-34px -18px}
}
.cig-paper{
  position:absolute;inset:0;border-radius:32px;
  background:linear-gradient(180deg,#f3e6c8,#dcc9a0);
  box-shadow:0 6px 18px rgba(0,0,0,.45), inset 0 -6px 10px rgba(0,0,0,.12);
  overflow:hidden;
}
.cig-fill{
  position:absolute;top:0;bottom:0;left:0;width:0%;
  background:linear-gradient(180deg,#8a6a3c,#5d4426);
  transition:width .08s linear;
}
.cig-filter{
  position:absolute;right:0;top:0;bottom:0;width:26%;
  background:repeating-linear-gradient(90deg,#d99a52 0 6px,#c78741 6px 12px);
  border-radius:0 32px 32px 0;
}
.cig-tip{
  position:absolute;left:-6px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;
  background:var(--ember);box-shadow:0 0 14px var(--ember);
  opacity:0;transition:opacity .3s;
}
#cig.lit .cig-tip{opacity:1;animation:emb 1.4s infinite alternate}
@keyframes emb{from{box-shadow:0 0 8px var(--ember)}to{box-shadow:0 0 22px var(--ember-hot)}}
.hint{font-size:13px;color:var(--smoke);font-style:italic}

.smoke-p{
  position:absolute;pointer-events:none;font-size:22px;color:var(--smoke);
  animation:rise 2.2s ease-out forwards;opacity:.7;
}
@keyframes rise{
  to{transform:translateY(-140px) translateX(24px) scale(1.8);opacity:0}
}
/* золотая сига — редкая пасхалка */
#cig.golden .cig-fill{background:linear-gradient(180deg,#ffd76a,#c89b34)}
#cig.golden .cig-paper{box-shadow:0 0 26px rgba(255,197,60,.6), inset 0 -6px 10px rgba(0,0,0,.12)}
.gold-p{
  position:absolute;pointer-events:none;font-size:26px;
  animation:rise 2.4s ease-out forwards;opacity:.95;
  filter:drop-shadow(0 0 8px rgba(255,197,60,.9));
}
[data-egg]{cursor:pointer}

#sellRow{display:flex;gap:10px;align-items:center;margin-top:8px}
button.act{
  background:var(--ember);border:none;color:var(--ink);
  font-family:inherit;font-size:15px;padding:10px 22px;border-radius:24px;
  cursor:pointer;transition:.15s;letter-spacing:.03em;
}
button.act:hover{background:var(--ember-hot)}
button.act:disabled{background:#5a4630;color:#8a7455;cursor:default}

#illegalBox{
  margin-top:14px;width:100%;border:1px dashed var(--danger);
  border-radius:10px;padding:12px 14px;display:none;
}
#illegalBox.show{display:block}
#illegalBox label{display:flex;gap:10px;align-items:center;cursor:pointer;font-size:14px}
#illegalBox .warn{font-size:12px;color:var(--danger);margin-top:6px}
#heatRow{display:flex;align-items:center;gap:10px;margin-top:10px}
.heat-label{font-size:12px;color:var(--paper-dim);white-space:nowrap}
.heat-label #heatPct{font-family:'Courier New',monospace;color:var(--paper)}
.heat-track{flex:1;height:8px;border-radius:6px;background:#3a2a1e;overflow:hidden}
.heat-fill{height:100%;width:0%;border-radius:6px;
  background:linear-gradient(90deg,var(--jade),var(--ember),var(--danger));
  background-size:340px 100%;transition:width .2s}
#bribeBtn{
  background:none;border:1px solid var(--line);color:var(--paper-dim);
  border-radius:16px;padding:4px 12px;cursor:pointer;font-family:'Courier New',monospace;
  font-size:12px;white-space:nowrap;transition:.15s;
}
#bribeBtn:hover:not(:disabled){border-color:var(--ember);color:var(--ember)}
#bribeBtn:disabled{opacity:.4;cursor:default}

/* ачивки */
.ach-count{font-family:'Courier New',monospace;color:var(--jade);letter-spacing:normal}
.ach{
  display:flex;align-items:center;gap:10px;padding:7px 12px;margin-bottom:6px;
  border:1px solid var(--line);border-radius:10px;background:var(--card);opacity:.5;
}
.ach.got{opacity:1;border-color:var(--jade)}
.ach .ico{font-size:17px;filter:grayscale(1)}
.ach.got .ico{filter:none}
.ach .a-nm{font-size:13.5px}
.ach .a-desc{font-size:11.5px;color:var(--paper-dim);margin-top:1px}
.ach.got .a-nm{color:var(--jade)}

/* тост */
#toast{
  position:fixed;left:50%;top:68px;transform:translateX(-50%);
  z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;
  pointer-events:none;
}
.toast-item{
  background:var(--bg2);border:1px solid var(--jade);border-radius:12px;
  padding:10px 18px;color:var(--paper);font-size:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.5);opacity:0;transform:translateY(-12px);
  transition:opacity .3s,transform .3s;text-align:center;
}
.toast-item.in{opacity:1;transform:translateY(0)}
.toast-item b{color:var(--jade)}
.toast-item small{display:block;color:var(--smoke);font-size:11.5px;margin-top:2px}

#log{
  margin-top:auto;width:100%;font-size:12.5px;color:var(--paper-dim);
  max-height:110px;overflow-y:auto;border-top:1px solid var(--line);padding-top:8px;
}
#log div{padding:2px 0}
#log .bad{color:var(--danger)}
#log .good{color:var(--jade)}

/* ---- правая часть: магазин ---- */
.shop{
  border-left:1px solid var(--line);padding:20px 18px 60px;
  background:var(--bg2);
}
@media(max-width:760px){.shop{border-left:none;border-top:1px solid var(--line)}}
.shop h2{
  font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--smoke);margin:20px 0 10px;font-weight:normal;
}
.shop h2:first-child{margin-top:0}
.item{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;
  align-items:center;gap:10px;
}
.item .nm{font-size:14.5px}
.item .sub{font-size:12px;color:var(--paper-dim);margin-top:2px}
.item button{
  background:none;border:1px solid var(--ember);color:var(--ember);
  border-radius:16px;padding:5px 12px;cursor:pointer;font-family:'Courier New',monospace;
  font-size:12.5px;white-space:nowrap;transition:.15s;
}
.item button:hover:not(:disabled){background:var(--ember);color:var(--ink)}
.item button:disabled{border-color:#55432e;color:#6f5a40;cursor:default}
.item.owned{border-color:var(--jade)}
.item.owned .tag{color:var(--jade);font-size:12px;font-family:'Courier New',monospace}
.item.locked{opacity:.45}

/* ---- концовка ---- */
/* z-index выше общей шапки fun (60), чтобы финал перекрывал и её */
#ending{
  position:fixed;inset:0;background:rgba(15,10,6,.94);display:none;
  align-items:center;justify-content:center;padding:20px;z-index:80;
}
#ending.show{display:flex}
.end-card{
  max-width:640px;background:var(--bg2);border:1px solid var(--ember);
  border-radius:14px;padding:30px;text-align:center;
}
.end-card h2{font-size:24px;font-style:italic;margin-bottom:8px;font-weight:normal}
.end-card p{color:var(--paper-dim);font-size:14.5px;margin-bottom:18px}
.end-choices{display:grid;gap:10px}
.end-choices button{
  background:var(--card);border:1px solid var(--line);color:var(--paper);
  padding:14px;border-radius:10px;cursor:pointer;font-family:inherit;
  font-size:15px;text-align:left;transition:.15s;
}
.end-choices button:hover{border-color:var(--ember)}
.end-choices button small{display:block;color:var(--smoke);font-size:12px;margin-top:4px}
#finale h2{color:var(--ember)}

/* ---- престиж ---- */
.stat.legend b{color:var(--jade)}
#prestigeRow{margin-top:8px;display:none;flex-direction:column;align-items:center;gap:4px}
#prestigeRow.show{display:flex}
button.act.ghost{background:none;border:1px solid var(--jade);color:var(--jade)}
button.act.ghost:hover{background:var(--jade);color:var(--ink)}
#prestigeHint{font-size:11.5px;color:var(--smoke);font-style:italic}
.end-style{
  font-size:12.5px;color:var(--jade);margin:-8px 0 16px;
  font-style:italic;letter-spacing:.02em;
}

/* общая шапка fun.eto-digital.com рисуется поверх — своей у страницы нет */
