@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Syne+Mono&display=swap');

:root {
  /* DAY — sabbia egiziana, cielo azzurro desertico */
  --bg:          #f0e0c0;        /* sabbia chiara */
  --bg2:         #f8edd8;        /* sabbia pallida console */
  --bg3:         #e8d4a8;        /* sabbia media card */
  --bg-dark:     #835f3e;        /* duna scura (slot bg) */
  --bg-slot:     #7a5535;        /* slot container */
  --text:        #3d1a00;
  --text2:       #5a2800;
  --text3:       #9a7040;
  --text4:       #7a3a00;
  --gold:        #c4a55a;
  --gold2:       #c4881a;
  --border:      rgba(196,165,90,0.25);
  --console-bg:  #f8edd8;
  --sym-bg:      #e8d4a8;
  --wallpaper:   url("day.jpg");
}

body.dark {
  /* NIGHT — blu navy del deserto notturno */
  --bg:          #23344e;        /* cielo notturno */
  --bg2:         #1c2337;        /* blu profondo console */
  --bg3:         #2a3550;        /* blu medio card */
  --bg-dark:     #141b2e;        /* slot bg scurissimo */
  --bg-slot:     #1c2337;        /* slot container */
  --text:        #b8cce0;        /* testo azzurro chiaro */
  --text2:       #8aaac8;        /* testo secondario */
  --text3:       #5a7898;        /* testo terziario */
  --text4:       #7090b0;
  --gold:        #4a6888;        /* bordi blu-grigio */
  --gold2:       #5a80a8;
  --border:      rgba(74,104,136,0.4);
  --console-bg:  #1c2337;
  --sym-bg:      #2a3550;
  --wallpaper:   url("night.jpg");
}

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

body {
  font-family:"Syne Mono",monospace;
  background-color:var(--bg);
  background-image:var(--wallpaper);
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  color:var(--text);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.contenitore {
  width:100%;
  max-width:1280px;
  padding:12px 16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  background:transparent;
}

/* ════ RIGA 1: nome | titolo | paytable ════ */
#gameHeader {
  width:100%;
  display:flex;
  flex-direction:column;
  gap:8px;
  border-radius:12px;
  padding:10px 16px;
}

#headerTop {
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
}

#playerInfo {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:1px !important;
  min-width:160px;
}
#socialStatusDisplay {
  font-family:"Cinzel",serif;
  font-size:14px;
  color:var(--text2);
  letter-spacing:0.1em;
  text-transform:uppercase;
  background:transparent!important;
  border:none!important;
  padding:0!important;
}
#playerNameDisplay {
  font-family:"Cinzel",serif;
  font-size:22px;
  font-weight:700;
  color:var(--text2);
}

#gameTitle {
  font-family:"Cinzel",serif;
  font-weight:700;
  color:var(--text4);
  text-align:center;
  letter-spacing:0.06em;
  font-size:20px;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  pointer-events:none;
  white-space:nowrap;
}

#headerTicker {
  margin-top:3px;
  min-height:20px;
}

#headerActions {
  min-width:160px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
}

/* Pulsanti icona (volume, fullscreen) */
.icon-btn {
  background:transparent;
  border:1px solid var(--gold);
  border-radius:6px;
  color:var(--text2);
  cursor:pointer;
  transition:all 0.15s;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.icon-btn:hover { background:var(--bg3); color:var(--text); }
.icon-btn .material-icons { font-size:18px; line-height:1; }

/* Volume — YouTube style inline */
#volumeControl {
  display:flex;
  align-items:center;
  gap:0;
}
#volMaster {
  width:0;
  -webkit-appearance:none;
  height:4px;
  border-radius:2px;
  background: linear-gradient(to right, #c4881a 0%, #c4881a 70%, rgba(90,40,0,0.15) 70%);
  outline:none;
  cursor:pointer;
  opacity:0;
  transition:width 0.25s ease, opacity 0.2s ease;
  flex-shrink:0;
}
#volumeControl:hover #volMaster,
#volumeControl:focus-within #volMaster {
  width:80px;
  opacity:1;
}
#volMaster::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:13px; height:13px;
  border-radius:50%;
  background:#c4881a;
  border:2px solid #fff;
  box-shadow:0 1px 4px rgba(0,0,0,0.2);
  cursor:pointer;
}
#volMaster::-moz-range-thumb {
  width:13px; height:13px;
  border-radius:50%;
  background:#c4881a;
  border:2px solid #fff;
  cursor:pointer;
}

/* ════ RIGA 2: score ════ */
#scoreInfo {
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  gap:40px;
}
.score-item {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}
.score-label {
  font-family:"Cinzel",serif;
  font-size:14px;
  color:var(--text3);
  letter-spacing:0.15em;
  text-transform:uppercase;
}
.score-value {
  font-family:"Cinzel",serif;
  font-size:20px;
  font-weight:700;
  line-height:1;
}
#totalScore     { color:#c0321a!important }
#currentCredits { color:var(--text4)!important }
#gemPoints      { color:#1a7a3a!important }
#activeLines    { color:#1a3a7a!important }
.score-sep { display:none }

/* ════ RIGA 3: XP ════ */
#xpBarWrap {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
}
#xpBarLabel {
  font-family:"Cinzel",serif;
  font-size:13px;
  color:var(--text3);
  text-align:center;
}
#xpBarLabel::before { content:"Lv " }
#xpBarTrack {
  width:100%;
  height:6px;
  background:rgba(90,40,0,0.12);
  border-radius:4px;
  overflow:hidden;
}
#levelProgressFill {
  width:0%;
  height:100%;
  background:linear-gradient(90deg,#c4881a,#e8c050);
  border-radius:4px;
  transition:width 0.5s ease;
}
#xpBarPoints {
  font-size:12px;
  color:var(--text3);
  text-align:center;
}

/* ════ SLOT AREA ════ */
#gameBody {
  width:100%;
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:12px;
}

#slotColumn {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  border-radius:12px;
  overflow:hidden;
  background: rgb(131,95,62);
  box-shadow:0 2px 16px rgba(90,40,0,0.36);
}

#slotWrapper {
  display:flex;
  align-items:stretch;
  width:100%;
  background:var(--bg-dark);
  margin-bottom:10px;
  padding:4px 4px 0;
  position:relative;
}

#paylineOverlay {
  position:absolute;
  pointer-events:none;
  z-index:1;
}

/* Numeri linea */
.line-numbers-left,
.line-numbers-right {
  width:26px;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  height:420px;
  pointer-events:none;
}
.line-numbers-left  { align-items:flex-end; }
.line-numbers-right { align-items:flex-start; }

.line-number {
  font-family:"Syne Mono",monospace;
  font-size:17px;
  font-weight:normal;
  color:#3a2a1a;
  text-align:center;
  line-height:calc(420px/25);
  height:calc(420px/25);
  transition:color 0.2s;
}
.line-number.selected {
  color:#cb9668;
}
.line-number.active,
.line-number.selected.active {
  font-weight:bold;
  animation:lineFade 1.2s ease-in-out infinite;
  text-shadow:none !important;
}
@keyframes lineFade {
  0%,100%{ opacity:1; }
  50%{ opacity:0.2; }
}

/* Slot */
#slotContainer {
  flex:1;
  height:420px;
  background: radial-gradient(circle, rgb(173,117,66) 0%, rgb(131,95,62) 50%);
  border-radius:8px;
  display:flex;
  overflow:hidden;
  position:relative;
}

.reel {
  flex:1;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-around;
  align-items:center;
  background:transparent;
  border-right:1px solid rgba(196,165,90,0.25);
  position:relative;
  z-index:2;
}
.reel:last-child { border-right:none }

.symbol {
  flex:1;
  width:75%;
  display:flex;
  justify-content:center;
  align-items:center;
  border-bottom:none;
  position:relative;
  z-index:2;
}
.symbol:last-child { border-bottom:none }
.symbol img { max-height:82%; max-width:82%; pointer-events:none }

.symbol.pulse {
  animation:symShake 0.4s ease-in-out infinite;
  z-index:2;
}

@keyframes symShake {
  0%,100% { transform: rotate(0deg); }
  20%     { transform: rotate(-6deg); }
  40%     { transform: rotate(6deg); }
  60%     { transform: rotate(-4deg); }
  80%     { transform: rotate(4deg); }
}

.symbol.pulse::before { display:none }

/* Simboli penalità: tremore rosso */
.symbol.symbol-penalty {
  filter: drop-shadow(0 0 6px rgba(180,30,30,0.9));
}
#slotContainer.has-winners .symbol.symbol-penalty {
  opacity: 1 !important;
}

.symbol-multiplier::after {
  content:attr(data-mult);
  position:absolute;
  top:3px;right:4px;
  background:rgba(90,40,0,0.85);
  color:#ffd700;
  font-size:12px;font-weight:bold;
  padding:1px 6px;
  border-radius:20px;
  border:1px solid #ffd700;
  z-index:3;
  animation:badgePop 1.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes badgePop { 0%,100%{transform:scale(1)} 50%{transform:scale(1.2)} }

/* ════ CONTROLS ════ */
#controls {
  background:rgba(245,230,196,0.88);
  border-radius:10px;
  padding:8px;
  width:150px;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  padding:0;
  background:transparent;
}

.bet-control { display:flex; flex-direction:column; align-items:center; gap:6px }
.bet-control label {
  font-family:"Cinzel",serif;
  font-size:14px;
  color:var(--text3);
  letter-spacing:0.1em;
}
#currentBet {
  font-family:"Cinzel",serif;
  font-size:18px;
  font-weight:700;
  color:var(--text);
  min-width:36px;
  text-align:center;
}
.bet-button {
  background:none;
  border:none;
  color:var(--text3);
  font-size:22px;
  font-family:"Cinzel",serif;
  cursor:pointer;
  padding:0 4px;
  transition:color 0.15s;
  margin:0;
  line-height:1;
}
.bet-button:hover { color:var(--text2) }

#spinButton {
  background:none;
  border:1px solid var(--gold);
  border-radius:6px;
  color:#e4dcc2;
  font-family:"Cinzel",serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:0.2em;
  padding:7px 28px;
  cursor:pointer;
  transition:all 0.15s;
  margin:0;
  text-transform:uppercase;
}
#spinButton:hover { background:var(--bg3); color:var(--text) }
#spinButton.spinning { border-color:#8b2010; color:#8b2010 }
#spinButton:disabled { opacity:0.35;cursor:not-allowed }

#xpBarWrap { display:flex;flex-direction:column;align-items:center;gap:6px;width:100% }

/* ════ FOOTER STATS — info di gioco ════ */
#headerTicker {
  margin-top: 3px;
}
#headerTickerText {
  font-family: "Syne Mono", monospace;
  font-size: 14px;
  color: #fffffff7;
  transition: opacity 0.4s ease;
}
#headerTickerText.fading {
  opacity: 0;
}
.footer-copy {
  width:100%;
  font-size:13px;
  color:var(--text3);
  text-align:center;
  padding:4px 0 6px;
  font-family:"Cinzel",serif;
}

/* ════ CONSOLE ════ */
#consoleColumn {
  width:100%;
  background:var(--bg2);
  border-radius:0 0 12px 12px;
  min-height:230px;
  overflow:hidden;
}
#consoleHeader { display:none }
#consoleTitle  { display:none }

#winMessage {
  height:100%;
  overflow-y:hidden;
  padding:12px 18px;
  font-family:"Syne Mono",monospace;
  font-size:17px;
  line-height:1.4;
  color:var(--text2);
  transition:opacity 0.35s ease;
}
#winMessage.fading { opacity:0 }
#winMessage::-webkit-scrollbar { width:3px }
#winMessage::-webkit-scrollbar-thumb { background:#5a3a10;border-radius:2px }

.log-entry {
  display:flex;align-items:flex-start;
  gap:6px;padding:1px 0;
  border-bottom:none;
  animation:fadeSlide 0.4s ease;
  font-size:17px;line-height:1.3;
}
.log-entry:last-child { border-bottom:none }
.log-entry img.message-icon { width:42px;height:auto;flex-shrink:0 }
#frasiGiocoInizialeSpan img.message-icon { width:42px;height:auto;vertical-align:middle;margin-right:8px }
.log-entry.win     { color:#f0c040 }
.log-entry.bonus   { color:#067dfb }
.log-entry.curse   { color:#e04030 }
.log-entry.level   { color:#067dfb }
.log-entry.mystic  { color:var(--text2); }
.log-entry.lose    { color:#e08070 }
.log-entry.gameover{ color:#e02010;font-weight:bold }
.log-entry.info    { color:var(--text2) }

@keyframes fadeSlide {
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}

/* Frase narrativa: fade out dopo 2s */
.log-hint { transition: opacity 0.5s ease; }
.log-hint.hint-fadeout { opacity: 0 !important; }

/* Riga info spin */
.log-entry.spininfo { color:var(--text3); font-size:12px; opacity:0.75; padding:2px 0; border-bottom:1px solid rgba(255,200,80,0.12); }
.log-spininfo { font-family:"Syne Mono",monospace; letter-spacing:0.04em; }

/* Vincite */
.log-entry.win-small { color:#ffa700; }
.log-entry.win-big   { color:#ffa700; font-size:16px; }
.log-entry.win-mega  { color:#ffa700; font-size:17px; animation:fadeSlide 0.3s ease; }
.log-entry.win-huge  { color:#ffa700; font-size:18px; animation:fadeSlide 0.3s ease; }

/* Dettaglio linea */
.log-line-num { display:inline-block; min-width:28px; color:var(--text3); font-size:11px; }
.log-count    { color:#c4a55a; }
.log-mult     { color:#4095f0; }
.log-payout   { color:#1fbe6a; }
.log-wild     { color:#00ccff; }
.log-penalty  { color:#e04030; }

/* Banner livello */
.log-entry.levelup {
  display:flex; flex-direction:column; align-items:center;
  gap:2px; padding:10px 0; margin:4px 0;
  background: linear-gradient(90deg, transparent, rgba(196,165,90,0.15), transparent);
  border-top:1px solid rgba(196,165,90,0.4);
  border-bottom:1px solid rgba(196,165,90,0.4);
  animation: levelFlash 0.6s ease;
}
.log-levelup {
  font-family:"Cinzel",serif; font-size:18px; font-weight:bold;
  color:#f0c040; letter-spacing:0.15em;
  text-shadow: 0 0 12px rgba(240,192,64,0.6);
}
.log-levelup-class {
  font-family:"Cinzel",serif; font-size:12px;
  color:#c4a55a; letter-spacing:0.2em; text-transform:uppercase;
}
@keyframes levelFlash {
  0%   { opacity:0; transform:scale(0.95); }
  50%  { opacity:1; transform:scale(1.02); }
  100% { transform:scale(1); }
}

/* Storia sbloccata */
.log-entry.story-unlock {
  background: linear-gradient(90deg, transparent, rgba(196,136,26,0.12), transparent);
  border-top: 1px solid rgba(196,136,26,0.3);
  padding: 4px 0 2px;
  animation: levelFlash 0.5s ease;
}
.log-story-unlock {
  font-family: "Cinzel", serif;
  font-size: 12px;
  color: #c4881a;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ════ GLOW VARS ════ */
:root {
}

/* ════ PAYTABLE BTN ════ */
#paytableBtn, #classificaBtn {
  background:transparent;
  border:1px solid var(--gold);
  border-radius:6px;
  color:var(--text2);
  font-family:"Cinzel",serif;
  font-size:13px;letter-spacing:0.06em;
  padding:7px 16px;cursor:pointer;
  transition:all 0.15s;margin:0;
}
#paytableBtn:hover, #classificaBtn:hover { background:var(--bg3);color:var(--text) }

/* ════ INTRO ════ */
#introScreen {
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:10000;padding:20px;
  opacity:0;transition:opacity 0.7s ease;pointer-events:none;
}
#introScreen.visible{opacity:1;pointer-events:all}
#introScreen.hidden{display:none!important}
.intro-logo{font-family:"Cinzel",serif;font-size:clamp(36px,6vw,68px);color:var(--text2);text-align:center;letter-spacing:0.08em;text-shadow:2px 2px 0 #c4a55a;margin-bottom:6px}
.intro-sub{font-size:14px;color:#914c11;letter-spacing:0.3em;text-transform:uppercase;margin-bottom:32px}
.intro-hieroglyphs{font-size:26px;color:#8b5a20;letter-spacing:0.2em;margin-bottom:32px;opacity:0.6}
.intro-form{background:transparent;border:none;border-radius:12px;padding:32px 40px;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:440px;width:90%;}
.intro-form label{font-size:14px;color:#6b4020;letter-spacing:0.2em;text-transform:uppercase}
.intro-form input{width:100%;background:#fdfdfd8f;border:1px solid var(--gold);border-radius:8px;color:var(--text);font-family:"Syne Mono",monospace;font-size:20px;padding:12px 16px;text-align:center;outline:none;transition:border-color 0.2s}
.intro-form input:focus{border-color:#8b4510}
.intro-form input::placeholder{color:#b09060;font-size:14px}
.intro-btn{background:none;border:1px solid var(--gold);border-radius:6px;color:var(--text2);font-family:"Cinzel",serif;font-size:16px;font-weight:700;letter-spacing:0.2em;padding:12px 48px;cursor:pointer;text-transform:uppercase;transition:all 0.15s;margin:0}
.intro-btn:hover{background:var(--bg3);color:var(--text)}
.intro-btn:disabled{opacity:0.4;cursor:not-allowed;transform:none}
.intro-warning{font-size:13px;color:var(--text3);text-align:center;line-height:1.7;max-width:380px}

/* ════ GAME OVER ════ */
#gameOverScreen{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;z-index:10000;padding:48px 20px;opacity:0;transition:opacity 0.6s ease;font-size:16px;overflow-y:auto;}
#gameOverScreen.hidden{display:none!important}
.go-title{font-family:"Cinzel",serif;font-size:clamp(32px,6vw,60px);color:#7a2010;text-align:center;margin-bottom:8px;}
.go-subtitle{font-size:15px;color:#883020;letter-spacing:0.25em;text-transform:uppercase;margin-bottom:28px;font-family:"Cinzel",serif}
.go-card{background:#fffffeb8;border:none;border-radius:10px;padding:16px 28px;max-width:600px;width:100%;margin-bottom:14px}
.go-stat{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #d4b870;font-size:16px}
.go-stat:last-child{border-bottom:none}
.go-stat .go-label{color:#8a6030;font-family:"Cinzel",serif;font-size:16px}
.go-stat .go-value{color:var(--text2);font-size:22px;font-weight:bold;font-family:"Cinzel",serif}
.go-quote{font-size:14px;color:#8a7050;font-style:italic;line-height:1.7;margin-top:14px}
.go-leaderboard{background:#fffffeb8;border:none;border-radius:10px;padding:16px 28px;max-width:600px;width:100%;margin-bottom:14px}
.go-lb-title{font-size:13px;color:#8a6030;letter-spacing:0.2em;text-transform:uppercase;margin-bottom:12px;text-align:center;font-family:"Cinzel",serif}
.go-lb-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #d4b870;font-size:14px}
.go-lb-row:last-child{border-bottom:none}
.go-lb-rank{color:var(--text3);width:26px}
.go-lb-rank.gold{color:#c4881a}
.go-lb-rank.silver{color:#808080}
.go-lb-rank.bronze{color:#8b4513}
.go-lb-name{flex:1;color:var(--text2);padding:0 12px}
.go-lb-score{color:#8b2010}
.go-lb-level{color:var(--text3);font-size:12px;margin-left:8px}
.go-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.go-btn{background:none;border:1px solid var(--gold);border-radius:8px;color:var(--text2);font-family:"Cinzel",serif;font-size:15px;letter-spacing:0.1em;padding:12px 32px;cursor:pointer;text-transform:uppercase;transition:all 0.15s;margin:0}
.go-btn:hover{background:var(--bg3);color:var(--text)}
.go-btn.primary{background:none;border:1px solid var(--gold);border-radius:6px;color:var(--text2);font-family:"Cinzel",serif;font-size:16px;font-weight:700;letter-spacing:0.2em;padding:10px 40px;}
.go-btn.primary:hover{background:var(--bg3);color:var(--text)}

/* ════ PAYTABLE ════ */
#paytableModal{position:fixed;inset:0;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;z-index:10002;padding:0;overflow-y:auto}
#paytableModal.hidden{display:none!important}
.go-title{font-family:"Cinzel",serif;font-size:clamp(32px,6vw,60px);color:#7a2010;text-align:center;margin-bottom:8px;}
.go-subtitle{font-size:15px;color:#883020;letter-spacing:0.25em;text-transform:uppercase;margin-bottom:28px;font-family:"Cinzel",serif}
.go-card{background:#fffffeb8;border:none;border-radius:10px;padding:16px 28px;max-width:600px;width:100%;margin-bottom:14px}
.go-stat{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #d4b870;font-size:16px}
.go-stat:last-child{border-bottom:none}
.go-stat .go-label{color:#8a6030;font-family:"Cinzel",serif;font-size:16px}
.go-stat .go-value{color:var(--text2);font-size:22px;font-weight:bold;font-family:"Cinzel",serif}
.go-quote{font-size:14px;color:#8a7050;font-style:italic;line-height:1.7;margin-top:14px}
.go-leaderboard{background:#fffffeb8;border:none;border-radius:10px;padding:16px 28px;max-width:600px;width:100%;margin-bottom:14px}
.go-lb-title{font-size:13px;color:#8a6030;letter-spacing:0.2em;text-transform:uppercase;margin-bottom:12px;text-align:center;font-family:"Cinzel",serif}
.go-lb-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid #d4b870;font-size:14px}
.go-lb-row:last-child{border-bottom:none}
.go-lb-rank{color:var(--text3);width:26px}
.go-lb-rank.gold{color:#c4881a}
.go-lb-rank.silver{color:#808080}
.go-lb-rank.bronze{color:#8b4513}
.go-lb-name{flex:1;color:var(--text2);padding:0 12px}
.go-lb-score{color:#8b2010}
.go-lb-level{color:var(--text3);font-size:12px;margin-left:8px}
.go-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.go-btn{background:none;border:1px solid var(--gold);border-radius:8px;color:var(--text2);font-family:"Cinzel",serif;font-size:15px;letter-spacing:0.1em;padding:12px 32px;cursor:pointer;text-transform:uppercase;transition:all 0.15s;margin:0}
.go-btn:hover{background:var(--bg3);color:var(--text)}
.go-btn.primary{background:none;border:1px solid var(--gold);border-radius:6px;color:var(--text2);font-family:"Cinzel",serif;font-size:16px;font-weight:700;letter-spacing:0.2em;padding:10px 40px;}
.go-btn.primary:hover{background:var(--bg3);color:var(--text)}

/* ════ PAYTABLE ════ */
#paytableModal{position:fixed;inset:0;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;z-index:10002;padding:0;overflow-y:auto}
#paytableModal.hidden{display:none!important}
#papyrusBookModal{position:fixed;inset:0;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;z-index:10002;padding:0;overflow-y:auto}
#papyrusBookModal.hidden{display:none!important}
.pt-container{background:var(--bg);border:none;border-radius:0;padding:40px 60px;width:100%;min-height:100vh;color:var(--text);font-size:16px;}
.pt-container::-webkit-scrollbar{width:4px}
.pt-container::-webkit-scrollbar-thumb{background:#c4a55a;border-radius:2px}
.pt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--gold)}
.pt-title{font-size:30px;color:var(--text2);font-family:"Cinzel",serif;font-weight:700}
.pt-close{background:none;border:1px solid var(--gold);border-radius:6px;color:#8a6030;font-family:"Syne Mono",monospace;font-size:18px;width:36px;height:36px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;margin:0;padding:0}
.pt-close:hover{background:var(--bg3);color:var(--text)}
.pt-section-title{font-size:12px;color:#8a4510;font-family:"Cinzel",serif;letter-spacing:0.2em;text-transform:uppercase;margin:22px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--gold)}
.pt-grid{display:flex;flex-direction:column;gap:10px;}
.pt-row{display:flex;align-items:center;gap:10px;background:#fdfdfd8f;border:none;border-radius:8px;padding:10px 14px;transition:all 0.15s}

.pt-sym-img{width:56px;height:56px;object-fit:contain;flex-shrink:0}
.pt-sym-info{flex:1;min-width:0}
.pt-sym-name{font-size:20px;color:var(--text);font-weight:bold;margin-bottom:6px;font-family:"Cinzel",serif;}
.pt-sym-payout{font-size:16px;color:#6b4020;line-height:1.6;display:flex;gap:16px;flex-wrap:wrap;}
.pt-sym-payout span{color:#8b2010;font-size:16px;font-weight:bold}
.pt-sym-level{font-size:17px;font-weight:bold;padding:3px 8px;border-radius:10px;flex-shrink:0;align-self:flex-start}
.pt-sym-level.lv1{background:#d4e8c0;color:#2a6030;border:1px solid #8ab870}
.pt-sym-level.lv-high{background:#e8c888;color:var(--text2);border:1px solid var(--gold)}
.pt-special-row{display:flex;align-items:flex-start;gap:14px;background:#fdfdfd8f;border:none;border-radius:10px;padding:14px 16px;margin-bottom:8px;transition:all 0.15s}

.pt-special-row img{width:48px;height:48px;object-fit:contain;flex-shrink:0}
.pt-special-text{flex:1}
.pt-special-name{font-size:20px;color:var(--text);font-weight:bold;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:"Cinzel",serif}
.pt-special-lv{font-size:10px;padding:2px 7px;border-radius:10px;background:#e8c888;color:var(--text2);border:1px solid var(--gold);font-family:"Syne Mono",monospace}
.pt-special-desc{font-size:16px;color:#6b4020;line-height:1.8}
.pt-special-desc em{color:#8b2010;font-style:normal;font-weight:bold}

/* ════ SFINGE ════ */
.modal{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;padding:40px 20px;overflow-y:auto;}
.modal-content{background:transparent;padding:0;border-radius:0;color:var(--text);text-align:center;width:100%;max-width:680px;font-size:1em;border:none;font-family:"Cinzel",serif;}
.card-row{display:flex;justify-content:center;gap:16px;margin:24px 0;flex-wrap:wrap;}

/* Dorso carta con glifi egizi */
.card-choice{
  width:110px;height:160px;cursor:pointer;border-radius:10px;
  border:2px solid #c4a55a;transition:all 0.2s;
  background: linear-gradient(135deg, #8b4510 0%, #5a2800 50%, #8b4510 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;color:#e8c050;font-size:22px;letter-spacing:0.1em;
  box-shadow:0 4px 12px rgba(90,40,0,0.3);
  position:relative;overflow:hidden;
}
.card-choice::before {
  content:"𓂀 𓆣 𓇳";
  position:absolute;top:8px;font-size:11px;opacity:0.5;letter-spacing:0.05em;color:#e8c050;
}
.card-choice::after {
  content:"𓁢 𓆙 𓅃";
  position:absolute;bottom:8px;font-size:11px;opacity:0.5;letter-spacing:0.05em;color:#e8c050;
}
.card-choice:hover{border-color:#e8c050;transform:translateY(-5px);box-shadow:0 8px 20px rgba(90,40,0,0.4);}
.card-choice img{width:90px;height:130px;object-fit:contain;border-radius:8px;}

.sphinx-card{width:110px;height:160px;margin:10px auto;display:block;border-radius:10px;border:2px solid #c4a55a;object-fit:contain;}
.hidden{display:none!important}
button{padding:7px 16px;font-size:1em;font-family:"Cinzel",monospace;cursor:pointer}

/* Titolo sfinge */
.sphinx-header-title {
  font-size:28px;font-weight:700;color:var(--text2);margin-bottom:6px;font-family:"Cinzel",serif;
}
.sphinx-header-sub {
  font-size:13px;color:var(--text3);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:20px;
}
.sphinx-question { font-size:15px;color:var(--text2);margin:16px 0;line-height:1.6;font-family:"Syne Mono",monospace; }
.sphinx-result-text { font-size:16px;font-weight:bold;color:var(--text2);margin:12px 0;font-family:"Syne Mono",monospace; }
.sphinx-buttons { display:flex;justify-content:center;gap:12px;margin-top:16px;flex-wrap:wrap; }
.sphinx-buttons button {
  background:none;border:1px solid var(--gold);border-radius:6px;
  color:var(--text2);font-family:"Cinzel",serif;font-size:15px;
  font-weight:700;letter-spacing:0.15em;padding:10px 28px;
  cursor:pointer;transition:all 0.15s;
}
.sphinx-buttons button:hover { background:var(--bg3); }

/* Simboli non vincenti opachi */
#slotContainer.has-winners .symbol:not(.pulse) {
  opacity: 0.25;
  transition: opacity 0.3s ease;
}
#slotContainer.has-winners .symbol.pulse {
  opacity: 1;
  transition: opacity 0.3s ease;
}

/* ── SYMBOL LIST SINISTRA ── */
#symbolList {
  width: 210px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 600px;
  overflow-y: auto;
  padding: 8px 4px;
  scrollbar-width: none;
}
#symbolList::-webkit-scrollbar { display: none; }

.sym-list-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--bg3);
  font-family: "Syne Mono", monospace;
  font-size: 13px;
  color: #3d1a00;
}
.sym-list-item.sym-new {
  background: #eedbb0;
  color: #5a2800;
}
.sym-list-item img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex-shrink: 0;
}
.sym-list-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.sym-list-name {
  font-size: 13px;
  color: #3d1a00;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sym-story-progress {
  display: flex;
  align-items: center;
  gap: 5px;
}
.sym-story-bar-wrap {
  flex: 1;
  height: 4px;
  background: rgba(90,40,0,0.15);
  border-radius: 2px;
  overflow: hidden;
}
.sym-story-bar-fill {
  height: 100%;
  background: #c4881a;
  border-radius: 2px;
  transition: width 0.4s ease;
}
.sym-story-pct {
  font-size: 10px;
  color: #9a7040;
  min-width: 26px;
  text-align: right;
}
#symbolListTitle {
  font-family: "Cinzel", serif;
  font-size: 12px;
  color: #dce3e9;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 4px;
  text-align: center;
}
.sym-new-badge {
  font-size: 12px;
  background: none;
  color: #c4881a;
  font-weight: bold;
  margin-left: auto;
  flex-shrink: 0;
  letter-spacing: 0.05em;
}

/* ── LOADING SCREEN ── */
#loadingScreen {
  position: fixed;
  inset: 0;
  background:var(--bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  transition: opacity 0.5s ease;
}
#loadingScreen.fade-out {
  opacity: 0;
  pointer-events: none;
}
.loading-title {
  font-family: "Cinzel", serif;
  font-size: 36px;
  font-weight: 700;
  color: #7a3a00;
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
.loading-sub {
  font-family: "Syne Mono", monospace;
  font-size: 13px;
  color: #9a7040;
  letter-spacing: 0.2em;
  margin-bottom: 40px;
}
.loading-glyphs {
  font-size: 28px;
  color: #c4881a;
  letter-spacing: 0.3em;
  animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}


/* ── CLASSIFICA MODAL ── */
#classificaModal {
  position: fixed;
  inset: 0;
  background:var(--bg);
  z-index: 10001;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 48px 20px;
  overflow-y: auto;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
#classificaModal.visible {
  opacity: 1;
  pointer-events: all;
}
.cl-title {
  font-family: "Cinzel", serif;
  font-size: 28px;
  color: #5a2800;
  font-weight: 700;
  margin-bottom: 6px;
}
.cl-sub {
  font-family: "Cinzel", serif;
  font-size: 12px;
  color: #9a7040;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 28px;
}
.cl-card {
  background: #fffffeb8;
  border-radius: 10px;
  padding: 16px 28px;
  max-width: 600px;
  width: 100%;
  margin-bottom: 14px;
}
.cl-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 0.5px solid #d4b870;
  font-size: 15px;
}
.cl-row:last-child { border-bottom: none; }
.cl-rank { font-family: "Cinzel", serif; font-weight: 700; color: #c4881a; min-width: 28px; }
.cl-rank.gold { color: #c4881a; }
.cl-rank.silver { color: #888; }
.cl-rank.bronze { color: #a06030; }
.cl-name { flex: 1; color: #3d1a00; font-weight: 500; }
.cl-score { color: #c0321a; font-weight: 700; }
.cl-level { color: #9a7040; font-size: 13px; }
.cl-class { color: #5a2800; font-size: 12px; font-family: "Cinzel", serif; }
.cl-empty { color: #9a7040; font-style: italic; text-align: center; padding: 20px; }

/* ════ MERCATO DEL NILO ════ */
#marketModal {
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:9999;padding:40px 20px;overflow-y:auto;
}
.market-box {
  background:transparent;padding:0;border-radius:0;
  color:var(--text);text-align:center;width:100%;max-width:600px;
  border:none;font-family:"Cinzel",serif;
}
.market-title {
  font-size:28px;font-weight:700;color:var(--text2);margin-bottom:6px;
}
.market-sub {
  font-size:13px;color:var(--text3);letter-spacing:0.15em;
  text-transform:uppercase;margin-bottom:24px;
}
.market-stalls {
  display:flex;justify-content:center;gap:20px;margin:20px 0 28px;
}
.market-stall {
  width:130px;cursor:pointer;
  border-radius:12px;border:2px solid #c4a55a;
  background:#fdf5dc;padding:16px 10px;
  transition:all 0.2s;display:flex;flex-direction:column;
  align-items:center;gap:10px;
}
.market-stall:hover { border-color:#8b4510;transform:translateY(-4px);background:#fff8e8; }
.market-stall img { width:70px;height:70px;object-fit:contain; }
.market-stall-label {
  font-size:12px;color:var(--text3);letter-spacing:0.1em;text-transform:uppercase;
}
.market-stall.revealed { pointer-events:none; }
.market-stall.win-stall { border-color:#c4881a;background:#fff8d0; }
.market-stall.lose-stall { border-color:#8b2010;background:#fff0ee;opacity:0.6; }
.market-result {
  font-size:18px;color:var(--text2);margin:10px 0 20px;min-height:28px;font-weight:bold;
}
.market-btn {
  background:none;border:1px solid var(--gold);border-radius:6px;
  color:var(--text2);font-family:"Cinzel",serif;font-size:15px;
  font-weight:700;letter-spacing:0.15em;padding:10px 32px;
  cursor:pointer;transition:all 0.15s;margin:4px;
}
.market-btn:hover { background:var(--bg3); }

/* ════ GIUDIZIO DI ANUBI ════ */
#anubiModal {
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:9999;padding:40px 20px;overflow-y:auto;
}
.anubi-box {
  background:transparent;padding:0;border-radius:0;
  color:var(--text);text-align:center;width:100%;max-width:640px;
  border:none;font-family:"Cinzel",serif;
}
.anubi-title {
  font-size:28px;font-weight:700;color:var(--text2);margin-bottom:6px;
}
.anubi-sub {
  font-size:13px;color:var(--text3);letter-spacing:0.15em;
  text-transform:uppercase;margin-bottom:24px;
}
.anubi-cards {
  display:flex;justify-content:center;gap:16px;margin:20px 0 28px;flex-wrap:wrap;
}
.anubi-card {
  width:140px;cursor:pointer;border-radius:10px;
  border:1px solid var(--gold);background:#fffffeb8;
  padding:16px 10px;transition:all 0.2s;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.anubi-card:hover { border-color:#8b4510;transform:translateY(-4px);background:#fff8e8; }
.anubi-card img { width:70px;height:70px;object-fit:contain; }
.anubi-card-name { font-size:12px;color:#8a6030;letter-spacing:0.08em;text-transform:uppercase; }
.anubi-card-value { font-size:20px;font-weight:700;color:#c4881a; }
.anubi-card.revealed { pointer-events:none; }
.anubi-card.win-card { border-color:#2a6030;background:#e8f5e0; }
.anubi-card.lose-card { border-color:#8b2010;background:#fef0ee;opacity:0.5; }
.anubi-result {
  font-size:18px;color:var(--text2);margin:10px 0 20px;min-height:28px;font-weight:bold;
}
.anubi-btn {
  background:none;border:1px solid var(--gold);border-radius:6px;
  color:var(--text2);font-family:"Cinzel",serif;font-size:15px;
  font-weight:700;letter-spacing:0.15em;padding:10px 32px;
  cursor:pointer;transition:all 0.15s;margin:4px;
}
.anubi-btn:hover { background:var(--bg3); }

/* ════ VASO ANTICO ════ */
#jarModal {
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:9999;padding:40px 20px;overflow-y:auto;
}
.jar-box {
  text-align:center;width:100%;max-width:900px;font-family:"Cinzel",serif;
}
.jar-title {
  font-size:28px;font-weight:700;color:var(--text2);margin-bottom:6px;
}
.jar-sub {
  font-size:13px;color:var(--text3);letter-spacing:0.15em;
  text-transform:uppercase;margin-bottom:28px;
}
.jar-reveal {
  background:#fffffeb8;border-radius:12px;padding:28px;
  margin:20px 0;font-size:20px;color:var(--text2);font-weight:bold;
  border:1px solid var(--gold);min-height:80px;display:flex;
  align-items:center;justify-content:center;
}
.jar-reveal.bonus { color:#2a6030; }
.jar-reveal.curse { color:#8b2010; }
.jar-btn {
  background:none;border:1px solid var(--gold);border-radius:6px;
  color:var(--text2);font-family:"Cinzel",serif;font-size:15px;
  font-weight:700;letter-spacing:0.15em;padding:10px 32px;
  cursor:pointer;transition:all 0.15s;margin-top:16px;
}
.jar-btn:hover { background:var(--bg3); }

/* ── JAR ANIMATION ── */
@keyframes jarPulse {
  0%   { transform: scale(1) rotate(0deg); }
  20%  { transform: scale(1.08) rotate(-3deg); }
  40%  { transform: scale(1.12) rotate(3deg); }
  60%  { transform: scale(1.08) rotate(-2deg); }
  80%  { transform: scale(1.04) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes jarGlow {
  0%, 100% { filter: drop-shadow(0 0 0px #c4881a); }
  50%       { filter: drop-shadow(0 0 20px #c4881a); }
}
.jar-img-anim {
  animation: jarPulse 0.6s ease-in-out, jarGlow 1.5s ease-in-out infinite;
}
@keyframes revealFade {
  from { opacity:0; transform: scale(0.85); }
  to   { opacity:1; transform: scale(1); }
}
.jar-reveal-anim {
  animation: revealFade 0.5s ease-out forwards;
}

/* ── JAR VASES ── */
.jar-vase {
  display:flex;flex-direction:column;align-items:center;gap:8px;
  cursor:pointer;padding:14px 10px;border-radius:10px;
  border:1px solid var(--gold);background:#fffffeb8;
  transition:all 0.2s;width:110px;flex-shrink:0;
}
.jar-vase:hover { border-color:#8b4510;transform:translateY(-4px);background:#fff8e8; }
.jar-vase img { width:80px;height:80px;object-fit:contain; }
.jar-vase-label { font-size:12px;color:var(--text3);font-family:"Cinzel",serif; }
.jar-vase.opened { pointer-events:none;cursor:default; }
.jar-vase.opened.bonus-vase { border-color:#2a6030;background:#e8f5e0; }
.jar-vase.opened.curse-vase { border-color:#8b2010;background:#fef0ee; }
.jar-vase.opened.neutral-vase { border-color:var(--gold);background:#fdf5dc; }
.jar-vase-value { font-size:13px;font-weight:bold;color:var(--text2);font-family:"Cinzel",serif; }
/* ══ DARK MODE overrides — colori notte del deserto ══ */
body.dark { color:var(--text); }
body.dark .contenitore { background:transparent; }
body.dark #gameHeader { background:rgba(28,35,55,0.88); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-radius:12px; }
body.dark #scoreInfo { background:transparent; }
body.dark #slotColumn { background:rgba(20,27,46,0.93); box-shadow:0 2px 24px rgba(0,0,0,0.6); }
body.dark #consoleColumn,
body.dark #winMessage { background:var(--bg2); color:var(--text); }
body.dark #slotWrapper { background:var(--bg-dark); }
body.dark #slotContainer {
  background: #1c2337;
  background: radial-gradient(circle, rgba(42,53,80,1) 0%, rgba(20,27,46,1) 60%);
}
body.dark .sym-list-item { background:var(--bg3); color:var(--text2); }
body.dark .log-entry.info { color:var(--text2); }
body.dark .log-entry.mystic { color:var(--text3); }
body.dark .log-entry.spininfo { color:var(--text3); }
body.dark .log-entry.lose { color:#7090b0; }
body.dark #symbolListTitle { color:var(--text3); }
body.dark .score-label { color:var(--text3); }
body.dark .score-value { color:var(--text2) !important; }
body.dark #totalScore { color:#6ab0d8 !important; }
body.dark #currentCredits { color:#8aaac8 !important; }
body.dark #gemPoints { color:#5a9080 !important; }
body.dark #activeLinesCount { color:#5a7898 !important; }
body.dark #playerNameDisplay { color:var(--text); }
body.dark #socialStatusDisplay { color:var(--text3); }
body.dark #gameTitle { color:var(--text2); }
body.dark #headerTickerText { color:var(--text3); }
body.dark #paytableBtn, body.dark #classificaBtn,
body.dark .icon-btn { border-color:var(--gold); color:var(--text2); background:rgba(35,52,78,0.6); }
body.dark #paytableBtn:hover, body.dark #classificaBtn:hover,
body.dark .icon-btn:hover { background:var(--bg3); color:var(--text); }
body.dark .line-number { color:rgba(74,104,136,0.4); }
body.dark .line-number.selected { color:var(--text3); }
body.dark .sym-story-bar-fill { background:#4a6888; }
body.dark .sym-story-bar-wrap { background:rgba(74,104,136,0.15); }
body.dark #xpBarTrack { background:rgba(74,104,136,0.15) !important; }
body.dark #levelProgressFill { background:linear-gradient(90deg,#3a6888,#5a90b8) !important; }
body.dark .log-entry { border-bottom-color:rgba(74,104,136,0.1); }
body.dark #controls { background:rgba(28,35,55,0.95); }
body.dark #symbolListPanel { background:transparent; }
body.dark .lines-btn { border-color:var(--gold) !important; color:var(--text2) !important; }
body.dark .reel { border-right-color:rgba(74,104,136,0.2); }
body.dark #winMessage.fading { opacity:0; }

/* ══ DAY MODE extra colors ══ */
#totalScore     { color:#fbd06a !important }
#currentCredits { color:#ffffff !important }
#gemPoints      { color:#ffffff !important }
#activeLines    { color:#ffffff !important }
#activeLinesCount { color:#fafbfd !important }
#currentBet     { color:#ffffff !important }
#levelPoints    { color:#ffd11d !important }
.bet-control label { color:#ffffff !important }
.bet-button     { color:#ffffff !important }

/* Linee attive sotto spin */
.lines-btn { font-size:14px !important; color:#e3dbc1 !important; }

/* Testo linee label LINEE */
#controls span[style*="letter-spacing"] { font-size:14px; color:#e4dcc2; }

/* ══ FORCE WHITE COLORS DAY ══ */
#totalScore     { color:#fbd06a !important }
#currentCredits { color:#fffffff7 !important }
#gemPoints      { color:#fffffff7 !important }
#activeLines    { color:#fffffff7 !important }
#activeLinesCount { color:#fffffff7 !important }
#headerTickerText { color:#fffffff7 !important }
#currentBet     { color:#fffffff7 !important }
#gameTitle      { color:#fffffff7 !important }
.bet-control label { color:#fffffff7 !important }
.bet-button     { color:#fffffff7 !important }
#paytableBtn    { color:#fffffff7 !important }
#classificaBtn  { color:#fffffff7 !important }
.icon-btn       { color:#fffffff7 !important }
#spinButton     { color:#e4dcc2 !important }
#playerNameDisplay { color:#fafbfd !important }
#socialStatusDisplay { color:#fafbfd !important }
#symbolListTitle { color:#dce3e9 !important }
.score-label    { color:#f9f9f9 !important }

/* ══ FORCE WHITE BORDERS HEADER BUTTONS ══ */
#paytableBtn, #classificaBtn, .icon-btn {
  border-color: rgba(255,255,255,0.7) !important;
}

/* ══ HEADER BUTTONS HOVER BG ══ */
#paytableBtn:hover, #classificaBtn:hover, .icon-btn:hover {
  background: #789bbb !important;
}

/* ══ SPIN + LINEE BUTTONS — same style as header ══ */
#spinButton, .lines-btn {
  border-color: rgba(255,255,255,0.7) !important;
}
#spinButton:hover, .lines-btn:hover {
  background: #789bbb !important;
}

/* ══ CONTROLS TEXT WHITE ══ */
.bet-control label,
#currentBet,
.bet-button,
#controls span { color: #fffffff7 !important; }

/* ══ SPIN WHITE OVERRIDE ══ */
#spinButton { color:#ffffff !important; }
#spinButton:hover { color:#ffffff !important; }

/* ══ LINES BUTTONS FORCE WHITE ══ */
.lines-btn { color:#ffffff !important; }


/* ══ DARK MODE — solo sfondo, slot e slot-column cambiano ══ */
body.dark #slotContainer {
  background: radial-gradient(circle, rgba(42,53,80,1) 0%, rgba(20,27,46,1) 60%);
}
body.dark #slotColumn {
  background: rgb(28,35,55);
}
body.dark #slotWrapper {
  background: rgb(20,27,46);
}
body.dark .sym-list-item {
  background: rgba(35,50,78,0.85) !important;
}
body.dark .reel {
  border-right-color: rgba(74,104,136,0.2);
}
/* ══ DARK MODE FINAL FIX ══ */
body.dark #gameHeader {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.dark #controls {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body.dark #symbolListPanel {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* Testi bianchi header dark */
body.dark .score-label,
body.dark #totalScore,
body.dark #currentCredits,
body.dark #gemPoints,
body.dark #activeLines,
body.dark #activeLinesCount,
body.dark #headerTickerText,
body.dark #currentBet,
body.dark #gameTitle,
body.dark #playerNameDisplay,
body.dark #socialStatusDisplay,
body.dark .bet-control label,
body.dark .bet-button,
body.dark #spinButton,
body.dark .lines-btn,
body.dark #paytableBtn,
body.dark #classificaBtn,
body.dark .icon-btn { color: #ffffff !important; }
/* Console dark testi chiari */
body.dark .log-entry.info { color: #c8d8e8 !important; }
body.dark .log-entry.lose { color: #a0b8c8 !important; }
body.dark .log-entry.mystic { color: #b0c4d4 !important; }
body.dark .log-entry.spininfo { color: #8aaac8 !important; }
body.dark #winMessage { color: #c8d8e8 !important; }

/* ══ DARK MODE CONSOLE COLORS ══ */
body.dark #consoleColumn,
body.dark #winMessage { background: rgb(28,35,55) !important; }
body.dark .log-entry.info    { color: #e8e0d0 !important; }
body.dark .log-entry.lose    { color: #e8e0d0 !important; }
body.dark .log-entry.mystic  { color: #e8e0d0 !important; }
body.dark .log-entry.spininfo { color: rgba(232,224,208,0.55) !important; }
body.dark .log-line-num      { color: rgba(232,224,208,0.5) !important; }

/* ══ DARK MODE SYMBOL LIST ══ */
body.dark .sym-list-item { background: rgba(255,255,255,0.07) !important; }
body.dark .sym-list-name  { color: #e8e0d0 !important; }
body.dark .sym-story-pct  { color: rgba(232,224,208,0.5) !important; }
body.dark #symbolListTitle { color: rgba(232,224,208,0.6) !important; }
body.dark .sym-new-badge  { color: #ffd11d !important; }

/* ══ DAY SYM-LIST-ITEM BG ══ */
.sym-list-item { background: #f8edd8bf !important; }

.footer-copy { color: #f8edd8 !important; }

body.dark .sym-story-bar-wrap { background: rgba(255,255,255,0.15) !important; }
body.dark .sym-story-bar-fill { background: rgba(255,255,255,0.55) !important; }

/* ══ CLASSIFICA MODAL DARK COLORS ══ */
body.dark #classificaModal {
  background: rgba(20,27,46,0.97) !important;
  backdrop-filter: blur(12px);
}
body.dark .cl-title  { color: #ffffff !important; }
body.dark .cl-sub    { color: rgba(255,255,255,0.55) !important; }
body.dark .cl-card   { background: rgba(255,255,255,0.08) !important; }
body.dark .cl-row    { border-bottom-color: rgba(255,255,255,0.1) !important; }
body.dark .cl-name   { color: #e8e0d0 !important; }
body.dark .cl-score  { color: #fbd06a !important; }
body.dark .cl-level  { color: rgba(232,224,208,0.6) !important; }
body.dark .cl-class  { color: rgba(232,224,208,0.7) !important; }
body.dark .cl-empty  { color: rgba(232,224,208,0.5) !important; }
body.dark .cl-rank       { color: #c4881a !important; }
body.dark .cl-rank.gold  { color: #ffd11d !important; }
body.dark .cl-rank.silver{ color: #c0c8d0 !important; }
body.dark .cl-rank.bronze{ color: #c4884a !important; }

/* ══ CLASSIFICA CLOSE BTN DARK ══ */
body.dark #classificaModal button {
  border-color: rgba(255,255,255,0.5) !important;
  color: #ffffff !important;
}

/* ══ PAYTABLE DARK MODE ══ */
body.dark #paytableModal { background: rgba(20,27,46,0.98) !important; }
body.dark .pt-container  { background: transparent !important; color: #e8e0d0 !important; }
body.dark .pt-title      { color: #ffffff !important; }
body.dark .pt-close      { border-color: rgba(255,255,255,0.4) !important; color: #ffffff !important; }
body.dark .pt-close:hover { background: rgba(255,255,255,0.1) !important; }
body.dark .pt-section-title { color: rgba(232,224,208,0.6) !important; border-bottom-color: rgba(255,255,255,0.15) !important; }
body.dark .pt-header     { border-bottom-color: rgba(255,255,255,0.15) !important; }

body.dark .pt-sym-name   { color: #ffffff !important; }
body.dark .pt-sym-payout { color: rgba(232,224,208,0.75) !important; }
body.dark .pt-sym-payout span { color: #fbd06a !important; }

body.dark .pt-special-name { color: #ffffff !important; }
body.dark .pt-special-desc { color: rgba(232,224,208,0.75) !important; }
body.dark .pt-special-desc em { color: #c8d8f0 !important; }
body.dark #paytableInner p,
body.dark #paytableInner div { color: rgba(232,224,208,0.85); }
body.dark #paytableInner strong { color: #ffffff !important; }
body.dark #paytableInner table { border-color: rgba(255,255,255,0.1); }
body.dark #paytableInner th { color: rgba(232,224,208,0.7) !important; border-bottom-color: rgba(255,255,255,0.15) !important; }
body.dark #paytableInner td { border-bottom-color: rgba(255,255,255,0.06) !important; color: #e8e0d0; }
body.dark .pt-row { background: rgb(33,39,58) !important; }
body.dark .pt-special-row { background: rgb(33,39,58) !important; }

/* ══ PAYTABLE INTRO TITLES DARK ══ */
body.dark #paytableInner div[style*="color:#8a4510"],
body.dark #paytableInner div[style*="color: #8a4510"] {
  color: rgba(255,255,255,0.85) !important;
}
body.dark #paytableInner p { color: #e8e0d0 !important; }
body.dark #paytableInner { color: #e8e0d0 !important; }

/* ══ PAYTABLE MAIN TITLE NIGHT ══ */
body.dark .pt-title { color: #fbb47f !important; }

body.dark #paytableInner div[style*="font-size:20px"] { color: #fbb47f !important; }

/* ══ LEADERBOARD ROW LAYOUT ══ */
.cl-row  { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:0.5px solid rgba(196,165,90,0.2); font-size:15px; }
.go-lb-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:0.5px solid rgba(196,165,90,0.15); font-size:14px; }
.cl-score, .go-lb-score { margin-left:auto; display:flex; align-items:center; gap:4px; font-weight:700; }
.cl-class, .go-lb-level { display:flex; align-items:center; gap:4px; font-size:12px; opacity:0.8; white-space:nowrap; }

/* ══ PAPIRO BOOK DARK ══ */
body.dark #papyrusBookModal { background: rgba(20,27,46,0.98) !important; }

/* ══ GAME OVER DARK MODE ══ */
body.dark #gameOverScreen { background: rgba(20,27,46,0.98) !important; }
body.dark .go-title       { color: #fbb47f !important; }
body.dark .go-subtitle    { color: rgba(255,255,255,0.55) !important; }
body.dark .go-card        { background: rgb(33,39,58) !important; }
body.dark .go-card *      { color: #e8e0d0 !important; }
body.dark .go-lb-title    { color: rgba(255,255,255,0.5) !important; }
body.dark .go-lb-row      { border-bottom-color: rgba(255,255,255,0.08) !important; }
body.dark .go-lb-name     { color: #e8e0d0 !important; }
body.dark .go-lb-score    { color: #fbd06a !important; }
body.dark .go-lb-level    { color: rgba(232,224,208,0.55) !important; }
body.dark .go-lb-rank     { color: rgba(232,224,208,0.55) !important; }
body.dark .go-lb-rank.gold   { color: #ffd11d !important; }
body.dark .go-lb-rank.silver { color: #c0c8d0 !important; }
body.dark .go-lb-rank.bronze { color: #c4884a !important; }
body.dark #gameOverScreen button { border-color: rgba(255,255,255,0.5) !important; color: #ffffff !important; }

body.dark .go-leaderboard { background: rgb(33,39,58) !important; }
body.dark .go-leaderboard * { color: #e8e0d0 !important; }
body.dark .go-lb-score { color: #fbd06a !important; }
body.dark .go-lb-rank.gold   { color: #ffd11d !important; }
body.dark .go-lb-rank.silver { color: #c0c8d0 !important; }
body.dark .go-lb-rank.bronze { color: #c4884a !important; }
body.dark .go-lb-row { border-bottom-color: rgba(255,255,255,0.08) !important; }

/* ══ INTRO DARK MODE ══ */
body.dark #introScreen { background: rgba(20,27,46,0.98) !important; }
body.dark .intro-logo  { color: #e8e0d0 !important; text-shadow: 2px 2px 0 rgba(74,104,136,0.5) !important; }
body.dark .intro-sub   { color: #fbb47f !important; }
body.dark .intro-hieroglyphs { color: #7090b0 !important; }
body.dark .intro-form label  { color: rgba(255,255,255,0.55) !important; }
body.dark .intro-form input  { background: rgba(255,255,255,0.08) !important; color: #e8e0d0 !important; border-color: rgba(255,255,255,0.25) !important; }
body.dark .intro-form input::placeholder { color: rgba(255,255,255,0.3) !important; }
body.dark .intro-form input:focus { border-color: rgba(255,255,255,0.5) !important; }
body.dark .intro-btn   { border-color: rgba(255,255,255,0.4) !important; color: #ffffff !important; }
body.dark .intro-btn:hover { background: rgb(33,39,58) !important; }
body.dark .intro-disclaimer { color: rgba(255,255,255,0.4) !important; }

/* ══ CLASSIFICA ROW FONT FORCE ══ */
.cl-row { font-size: 18px !important; }
.cl-row span { font-size: 18px !important; }
.cl-rank { font-size: 18px !important; }
.cl-name { font-size: 18px !important; }
.cl-score { font-size: 18px !important; }
.cl-info { font-size: 18px !important; }
.cl-info span { font-size: 18px !important; }

/* ══ LEADERBOARD ROW FINAL LAYOUT ══ */
.cl-row, .go-lb-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.cl-card { max-width: 776px !important; }

/* ════ PAPIRO SACRO MINI-GIOCO ════ */
#papyrusGameModal {
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:9999;padding:40px 20px;overflow-y:auto;
}
#papyrusGameModal.hidden { display:none!important; }
.papyrus-game-box {
  background:transparent;padding:0;border-radius:0;
  color:var(--text);text-align:center;width:100%;max-width:600px;
  border:none;font-family:"Cinzel",serif;
}
.papyrus-game-title {
  font-size:28px;font-weight:700;color:var(--text2);margin-bottom:6px;
}
.papyrus-game-sub {
  font-size:13px;color:var(--text3);letter-spacing:0.15em;
  text-transform:uppercase;margin-bottom:8px;
}
.papyrus-choice-btn {
  width:200px;min-height:80px;cursor:pointer;
  border-radius:12px;border:2px solid #c4a55a;
  background:#fdf5dc;padding:14px 12px;
  transition:all 0.2s;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;
  font-family:"Syne Mono",monospace;font-size:15px;color:#5a3010;line-height:1.4;
}
.papyrus-choice-btn:hover { border-color:#8b4510;transform:translateY(-4px);background:#fff8e8; }
.papyrus-choice-btn.correct { border-color:#c4881a;background:#fff8d0;pointer-events:none; }
.papyrus-choice-btn.wrong   { border-color:#8b2010;background:#fff0ee;opacity:0.6;pointer-events:none; }
.papyrus-choice-btn.disabled { pointer-events:none; }
body.dark .papyrus-choice-btn { background:rgb(33,39,58);border-color:#4a6888;color:#e8e0d0; }
body.dark .papyrus-choice-btn:hover { background:rgba(255,255,255,0.1); }
body.dark #papyrusGameModal { background:rgba(20,27,46,0.98); }
body.dark .papyrus-game-title { color:#e8e0d0; }
body.dark .papyrus-game-sub { color:rgba(255,255,255,0.5); }
body.dark #papyrusQuestion { color:#e8e0d0 !important; }
body.dark #papyrusResult { color:#fbb47f !important; }

/* ════ PAPIRO GAME — font allineato agli altri mini-giochi ════ */
#papyrusResult {
  font-size:18px;color:var(--text2);margin:10px 0 20px;min-height:28px;font-weight:bold;
  font-family:"Cinzel",serif;
}
#papyrusQuestion {
  font-family:"Syne Mono",monospace !important;
  font-size:16px;
}
.papyrus-game-title { font-family:"Cinzel",serif; }
.papyrus-choice-btn { font-family:"Syne Mono",monospace; }

/* ════ RUOTA DELLA FORTUNA ════ */
@keyframes wheelPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,209,29,0.4); }
  50%      { box-shadow: 0 0 0 8px rgba(255,209,29,0); }
}
@keyframes wheelSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(var(--wheel-end-deg)); }
}

#fortuneWheelModal {
  position:fixed;inset:0;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  z-index:9999;padding:20px;
}
#fortuneWheelModal.hidden { display:none!important; }

.wheel-box {
  text-align:center;font-family:"Cinzel",serif;
  max-width:480px;width:100%;
}
.wheel-title {
  font-size:26px;font-weight:700;color:var(--text2);margin-bottom:4px;
}
.wheel-sub {
  font-size:12px;color:var(--text3);letter-spacing:0.15em;
  text-transform:uppercase;margin-bottom:24px;
}
.wheel-container {
  position:relative;display:inline-block;
}
.wheel-pointer {
  position:absolute;top:-18px;left:50%;transform:translateX(-50%);
  font-size:28px;color:#ffd11d;z-index:10;
  text-shadow:0 2px 8px rgba(0,0,0,0.4);
}
.wheel-wrap {
  width:500px;height:500px;border-radius:50%;
  border:8px solid #c4a55a;
  box-shadow:0 4px 48px rgba(0,0,0,0.3);
  overflow:hidden;position:relative;
}
.wheel {
  width:100%;height:100%;border-radius:50%;
  background: conic-gradient(
    #b8864a    0deg   45deg,
    #9a6e38   45deg   90deg,
    #b8864a   90deg  135deg,
    #9a6e38  135deg  180deg,
    #b8864a  180deg  225deg,
    #9a6e38  225deg  270deg,
    #b8864a  270deg  315deg,
    #9a6e38  315deg  360deg
  );
  transition:none;
  position:relative;
}
.wheel.spinning {
  animation: wheelSpin var(--spin-duration,3s) cubic-bezier(0.17,0.67,0.12,0.99) forwards;
}
.wheel-labels {
  position:absolute;inset:0;border-radius:50%;pointer-events:none;
}
.wheel-label {
  position:absolute;top:0;left:0;
  width:50%;height:50%;
  transform-origin:100% 100%;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding-top:10px;
  box-sizing:border-box;
}
.wheel-label img {
  width:30px;height:30px;object-fit:contain;
  transform:rotate(22.5deg) translateX(-8px);
  filter:drop-shadow(0 1px 3px rgba(0,0,0,0.6));
  margin-bottom:3px;
  flex-shrink:0;
}
.wheel-label span {
  font-family:"Syne Mono",monospace;
  font-size:9px;font-weight:700;color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,0.9);
  white-space:nowrap;
  transform:rotate(22.5deg) translateX(-8px);
  line-height:1.1;
}
/* linee divisorie spicchi */
.wheel-divider {
  position:absolute;top:50%;left:50%;
  width:50%;height:2px;
  background:rgba(255,255,255,0.3);
  transform-origin:0 50%;
}
.wheel-result {
  font-size:20px;font-weight:700;color:var(--text2);
  margin:20px 0 8px;min-height:32px;font-family:"Cinzel",serif;
}
body.dark #fortuneWheelModal { background:rgba(20,27,46,0.98); }
body.dark .wheel-title { color:#e8e0d0; }
body.dark .wheel-sub   { color:rgba(255,255,255,0.45); }
body.dark .wheel-result { color:#fbb47f; }
body.dark .wheel-wrap  { border-color:#4a6888; }