/* ============================================================
   STONE SIMULATOR V7 — COMPLETE STYLESHEET
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400;0,600;1,400;1,600&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#06070c;--surf:#0c0d14;--card:#10111a;--card2:#13141e;
  --b1:#1c1e2e;--b2:#262840;--b3:#343650;
  --t1:#c4c6d4;--t2:#545870;--t3:#2c2e40;--bright:#eceef8;
  --gold:#c8a44a;--green:#488a5c;--green2:#5dab72;
  --tc:#4a6a4a;--tu:#3a6898;--tr:#7a4898;--te:#987838;--tl:#983838;
  --fm:'Space Mono',monospace;--fs:'Lora',Georgia,serif;
  --r:3px;--r2:6px;
  --hh:48px;--sw:290px;--tabh:42px;
}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--t1);font-family:var(--fm);font-size:12px;line-height:1.5;-webkit-font-smoothing:antialiased}

/* ══════════════════════════════════════════════════════════════
   ONBOARDING
   ══════════════════════════════════════════════════════════════ */
.onboard-wrap{
  position:fixed;inset:0;z-index:9000;
  display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;
  padding:clamp(12px,4dvh,40px) 16px;
  background:#020308;
  transition:opacity .6s ease;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;
}
.onboard-wrap.fade-out{opacity:0;pointer-events:none}
.onboard-wrap.gone{display:none}
.onboard-canvas-bg{position:absolute;inset:0;opacity:.4}
#onboard-canvas{width:100%;height:100%;display:block}
.onboard-content{
  position:relative;z-index:2;
  max-width:480px;width:100%;
  background:rgba(6,7,12,.95);
  border:1px solid var(--b2);border-radius:8px;
  padding:clamp(16px,3vw,32px) clamp(14px,3vw,28px);
  text-align:center;
  /* No max-height or overflow here — parent scrolls */
}
.onboard-title-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:clamp(10px,2vw,16px)}
.onboard-emoji{font-size:clamp(28px,6vw,40px)}
.onboard-game-name{font-family:var(--fm);font-size:clamp(13px,2.5vw,18px);font-weight:700;letter-spacing:.2em;color:var(--t2);text-transform:uppercase}
.onboard-headline{font-family:var(--fs);font-style:italic;font-size:clamp(18px,4vw,28px);color:var(--bright);margin-bottom:clamp(8px,2vw,14px);line-height:1.3}
.onboard-body{font-family:var(--fs);font-style:italic;font-size:clamp(11px,2vw,13px);color:var(--t2);line-height:1.8;margin-bottom:clamp(10px,2vw,16px)}
.onboard-body p{margin-bottom:5px}
.onboard-body p:last-child{margin-bottom:0}
.onboard-body strong{color:var(--gold);font-style:normal}
.onboard-features{display:flex;flex-direction:column;gap:5px;margin-bottom:clamp(10px,2vw,16px);text-align:left}
.ob-feat{display:flex;align-items:flex-start;gap:8px;background:rgba(255,255,255,.025);border:1px solid var(--b1);border-radius:var(--r);padding:7px 10px;font-size:clamp(9px,1.6vw,11px);color:var(--t2);line-height:1.4}
.ob-feat>span:first-child{font-size:16px;flex-shrink:0;margin-top:1px}
.onboard-lang-row{display:flex;justify-content:center;gap:7px;margin-bottom:clamp(10px,2vw,16px)}
.ob-lang{
  background:transparent;border:1px solid var(--b1);border-radius:var(--r);
  padding:6px 14px;cursor:pointer;font-family:var(--fm);font-size:11px;
  color:var(--t2);transition:all .15s;display:flex;align-items:center;gap:6px;
}
.ob-lang:hover{border-color:var(--b2);color:var(--t1)}
.ob-lang.active{border-color:var(--gold);color:var(--gold);background:rgba(200,164,74,.08)}
.onboard-start{width:100%;padding:clamp(11px,2vw,14px);background:var(--green);border:none;border-radius:var(--r2);color:#fff;font-family:var(--fm);font-size:clamp(10px,1.6vw,12px);font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:all .2s;margin-bottom:clamp(8px,1.5vw,12px)}
.onboard-start:hover{background:var(--green2);transform:translateY(-1px);box-shadow:0 4px 20px rgba(72,138,92,.3)}
.onboard-footnote{font-size:clamp(9px,1.5vw,10px);color:var(--t3);letter-spacing:.05em;font-family:var(--fm)}

/* ══════════════════════════════════════════════════════════════
   DESKTOP APP LAYOUT
   ══════════════════════════════════════════════════════════════ */
#app{
  display:grid;
  grid-template-columns:1fr var(--sw);
  grid-template-rows:var(--hh) 1fr;
  width:100vw;height:100dvh;overflow:hidden;
}
/* ── HEADER ── */
#header{
  grid-column:1/-1;grid-row:1;
  display:flex;align-items:center;gap:8px;
  padding:0 12px;height:var(--hh);
  background:rgba(6,7,12,.98);border-bottom:1px solid var(--b1);
  z-index:10;overflow:hidden;
}
#header-left{display:flex;align-items:center;gap:7px;flex-shrink:0}
.game-title{font-size:12px;font-weight:700;letter-spacing:.15em;color:var(--t2);text-transform:uppercase;white-space:nowrap}
.title-sep{width:1px;height:18px;background:var(--b1);flex-shrink:0}
.lang-selector{display:flex;gap:3px}
.lang-btn{background:transparent;border:1px solid var(--b1);border-radius:var(--r);padding:2px 5px;font-size:13px;cursor:pointer;transition:all .15s;opacity:.4;line-height:1}
.lang-btn:hover{opacity:.75;border-color:var(--b2)}
.lang-btn.active{opacity:1;border-color:var(--gold);background:rgba(200,164,74,.08)}
#header-center{flex:1;display:flex;justify-content:center;align-items:center;gap:16px;min-width:0;overflow:hidden}
.h-stat{display:flex;flex-direction:column;align-items:center;gap:0}
.h-stat-label{font-size:8px;color:var(--t2);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.h-stat-value{font-size:17px;font-weight:700;color:var(--gold);letter-spacing:.04em;line-height:1.1;white-space:nowrap}
.h-stat-rate{font-size:9px;color:var(--green);white-space:nowrap}
#header-right{display:flex;align-items:center;gap:4px;flex-shrink:0}
.hdr-btn{background:transparent;border:1px solid var(--b1);color:var(--t2);padding:5px 8px;border-radius:var(--r);cursor:pointer;font-family:var(--fm);font-size:10px;letter-spacing:.04em;transition:all .15s;white-space:nowrap}
.hdr-btn:hover{border-color:var(--b3);color:var(--t1);background:rgba(255,255,255,.025)}
.hdr-btn.pov-active{
  border-color:#c8a44a;
  color:#e8c460;
  background:rgba(200,164,74,.12);
  animation:pov-btn-pulse 1.5s ease-in-out infinite;
}
@keyframes pov-btn-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(200,164,74,0.4)}
  50%{box-shadow:0 0 0 4px rgba(200,164,74,0)}
}
/* ── WORLD ── */
#world-wrap{grid-column:1;grid-row:2;position:relative;overflow:hidden;background:#020306;width:100%;height:100%;min-height:0}
#world-canvas{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair;display:block}
.world-meta{position:absolute;top:10px;left:10px;display:flex;gap:6px;pointer-events:none}
.world-tag{background:rgba(6,7,12,.8);border:1px solid var(--b1);padding:3px 8px;border-radius:var(--r);font-size:9px;color:var(--t2);backdrop-filter:blur(8px);letter-spacing:.05em;white-space:nowrap}
#rank-hud{position:absolute;top:10px;right:10px;background:rgba(6,7,12,.88);border:1px solid var(--b1);padding:8px 11px;border-radius:var(--r2);backdrop-filter:blur(12px);max-width:160px;pointer-events:none;overflow:hidden}
.rank-hud-inner{display:flex;align-items:center;gap:6px;margin-bottom:6px;overflow:hidden}
#rank-emoji{font-size:16px;flex-shrink:0}
#rank-name{font-weight:700;font-size:10px;color:var(--bright);letter-spacing:.07em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#rank-progress-track{height:2px;background:var(--b1);border-radius:2px;overflow:hidden;margin-bottom:3px}
#rank-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));transition:width .4s}
#rank-progress-text{font-size:8px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#event-ticker{position:absolute;bottom:0;left:0;right:0;pointer-events:none}
.event-ticker-inner{margin:8px;padding:9px 12px;background:rgba(6,7,12,.93);border:1px solid var(--b1);border-radius:var(--r);backdrop-filter:blur(12px);display:flex;align-items:flex-start;gap:8px;transition:border-color .4s,box-shadow .4s;overflow:hidden}
#event-ticker[data-tier="uncommon"] .event-ticker-inner{border-color:rgba(58,104,152,.65)}
#event-ticker[data-tier="rare"] .event-ticker-inner{border-color:rgba(122,72,152,.75);box-shadow:0 0 18px rgba(122,72,152,.1)}
#event-ticker[data-tier="epic"] .event-ticker-inner{border-color:rgba(152,120,56,.85);box-shadow:0 0 22px rgba(152,120,56,.12)}
#event-ticker[data-tier="legendary"] .event-ticker-inner{border-color:rgba(152,56,56,.95);box-shadow:0 0 32px rgba(152,56,56,.18)}
#event-emoji{font-size:16px;flex-shrink:0;margin-top:1px}
.event-ticker-text{flex:1;min-width:0;overflow:hidden}
#event-tier-badge{font-size:8px;letter-spacing:.14em;color:var(--t3);display:block;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#event-title{font-size:11px;font-weight:700;color:var(--t1);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-msg{font-family:var(--fs);font-style:italic;font-size:11px;color:var(--t2);display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ── SIDEBAR ── */
#sidebar{grid-column:2;grid-row:2;border-left:1px solid var(--b1);display:flex;flex-direction:column;overflow:hidden;background:var(--surf);min-height:0;width:var(--sw)}
.tabs{display:flex;border-bottom:1px solid var(--b1);flex-shrink:0;height:var(--tabh)}
.tab-btn{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;padding:0;color:var(--t2);font-size:16px;cursor:pointer;transition:all .15s;height:100%}
.tab-btn:hover{color:var(--t1);background:rgba(255,255,255,.02)}
.tab-btn.active{color:var(--bright);border-bottom-color:var(--gold)}
.panel{display:none;flex-direction:column;flex:1;overflow:hidden;min-height:0}
.panel.active{display:flex}.panel.active{animation:panel-fade-in 0.2s ease forwards}
.panel-header-label{padding:8px 10px;font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--t2);text-transform:uppercase;border-bottom:1px solid var(--b1);flex-shrink:0}
.panel-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--b1) transparent;-webkit-overflow-scrolling:touch}
.panel-scroll::-webkit-scrollbar{width:3px}
.panel-scroll::-webkit-scrollbar-thumb{background:var(--b1);border-radius:2px}
/* ── CARDS ── */
.card{border:1px solid var(--b1);border-radius:var(--r);padding:10px;margin:7px 7px 0;background:var(--card);overflow:hidden}
.card:hover{border-color:var(--b2)}
.card-danger{border-color:rgba(120,40,40,.3)!important;background:rgba(120,40,40,.04)!important}
.card-label{font-size:8px;letter-spacing:.12em;color:var(--t2);text-transform:uppercase;margin-bottom:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-card-row{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;overflow:hidden}
.rank-emoji-big{font-size:26px;flex-shrink:0}
.rank-name-big{font-size:14px;font-weight:700;color:var(--bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-desc{font-size:10px;font-style:italic;font-family:var(--fs);color:var(--t2);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.progress-track{height:2px;background:var(--b1);border-radius:2px;overflow:hidden;margin-bottom:4px}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));transition:width .3s}
.progress-text{font-size:9px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:7px}
.qs-l{font-size:8px;color:var(--t2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-v{font-size:13px;font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-v.gold{color:var(--gold)}
#mini-log{display:flex;flex-direction:column}
.mini-log-entry{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid rgba(28,30,46,.4);overflow:hidden}
.mini-log-entry:last-child{border-bottom:none}
.mini-log-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0;background:var(--t3)}
.mini-log-entry.tier-uncommon .mini-log-dot{background:var(--tu)}
.mini-log-entry.tier-rare .mini-log-dot{background:var(--tr)}
.mini-log-entry.tier-epic .mini-log-dot{background:var(--te)}
.mini-log-entry.tier-legendary .mini-log-dot{background:var(--tl)}
.mini-log-emoji{font-size:12px;flex-shrink:0}
.mini-log-text{flex:1;min-width:0;overflow:hidden}
.mini-log-title{font-size:10px;font-weight:700;color:var(--t1);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-log-msg{font-size:9px;font-style:italic;font-family:var(--fs);color:var(--t2);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-log-gp{font-size:9px;color:var(--green);font-weight:700;flex-shrink:0}
.mini-log-empty{font-size:10px;font-style:italic;font-family:var(--fs);color:var(--t2);padding:6px 0;text-align:center}
.click-report{font-size:11px;font-family:var(--fs);font-style:italic;color:var(--t2);line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.click-count{font-size:9px;color:var(--t3);margin-top:4px}
.wisdom-text{font-size:11px;font-family:var(--fs);font-style:italic;color:var(--t2);line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.prestige-hint{font-size:11px;color:#a06060;font-family:var(--fs);font-style:italic;line-height:1.5;margin-bottom:8px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.panel-footer{padding:7px;border-top:1px solid var(--b1);flex-shrink:0}
.controls-row{display:flex;gap:6px}
.flex1{flex:1;text-align:center;padding:7px 6px!important}
.mb8{margin-bottom:8px}
.mt8{margin-top:8px}
.mt6{margin-top:6px}
.gap6{gap:6px}
/* ── LOG / STATS / ACH ── */
.empty-state{padding:24px 14px;color:var(--t2);font-family:var(--fs);font-style:italic;font-size:12px;line-height:1.9;text-align:center}
.log-entry{display:flex;align-items:flex-start;gap:7px;padding:8px 10px;border-bottom:1px solid rgba(28,30,46,.5);overflow:hidden}
.log-entry:hover{background:rgba(255,255,255,.018)}
.log-dot{width:5px;height:5px;border-radius:50%;margin-top:4px;flex-shrink:0;background:var(--t3)}
.log-entry.tier-common .log-dot{background:var(--tc)}
.log-entry.tier-uncommon .log-dot{background:var(--tu)}
.log-entry.tier-rare .log-dot{background:var(--tr)}
.log-entry.tier-epic .log-dot{background:var(--te)}
.log-entry.tier-legendary .log-dot{background:var(--tl)}
.log-emoji{font-size:13px;flex-shrink:0}
.log-text{flex:1;min-width:0;overflow:hidden}
.log-title{display:block;font-size:10px;font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log-msg{display:block;font-size:10px;font-family:var(--fs);font-style:italic;color:var(--t2);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.log-gp{font-size:9px;color:var(--green);flex-shrink:0;font-weight:700}
#stats-content{padding:7px;display:flex;flex-direction:column;gap:7px}
.stat-group{border:1px solid var(--b1);border-radius:var(--r);overflow:hidden}
.stat-group-title{padding:5px 9px;font-size:9px;font-weight:700;letter-spacing:.1em;color:var(--t2);text-transform:uppercase;background:rgba(255,255,255,.02);border-bottom:1px solid var(--b1)}
.stat-row{display:flex;justify-content:space-between;align-items:center;padding:5px 9px;border-bottom:1px solid rgba(28,30,46,.4);gap:8px}
.stat-row:last-child{border-bottom:none}
.stat-label{font-size:10px;color:var(--t2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stat-value{font-size:10px;font-weight:700;color:var(--t1);flex-shrink:0}
#achievements-content{padding:7px;display:flex;flex-direction:column;gap:5px}
.ach-progress-wrap{margin-bottom:4px}
.ach-prog-label{font-size:9px;color:var(--t2);margin-bottom:5px}
.ach-prog-track{height:3px;background:var(--b1);border-radius:2px;overflow:hidden}
.ach-prog-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));transition:width .5s}
.achievement{display:flex;align-items:flex-start;gap:8px;padding:8px 9px;border:1px solid var(--b1);border-radius:var(--r);background:var(--card);overflow:hidden}
.achievement.unlocked{border-color:rgba(72,138,92,.35);background:rgba(72,138,92,.04)}
.achievement.locked{opacity:.4}
.achievement:hover{opacity:1;border-color:var(--b2)}
.ach-emoji{font-size:18px;flex-shrink:0}
.ach-name{font-size:11px;font-weight:700;color:var(--t1);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ach-desc{font-size:10px;font-family:var(--fs);font-style:italic;color:var(--t2);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ach-reward{font-size:9px;color:var(--green);font-weight:700;margin-top:2px}
.ach-check{color:var(--green);font-size:12px;font-weight:700;flex-shrink:0}
/* ── NOTIFICATIONS ── */
#notification-container{position:fixed;top:54px;right:10px;z-index:1000;display:flex;flex-direction:column;gap:5px;pointer-events:none;max-width:270px;width:calc(100% - 20px)}
.toast{padding:9px 12px;border-radius:var(--r);border-left:3px solid #444;background:var(--card2);opacity:0;transform:translateX(12px);transition:all .22s cubic-bezier(.4,0,.2,1);font-family:var(--fm);box-shadow:0 4px 20px rgba(0,0,0,.55);overflow:hidden}
.toast.toast-visible{opacity:1;transform:translateX(0);animation:toast-in 0.42s cubic-bezier(.22,1,.36,1) forwards}
.toast.toast-hiding{animation:toast-out 0.28s ease-in forwards}
.toast-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.toast-emoji{font-size:14px}
.toast-type{font-size:8px;letter-spacing:.12em;opacity:.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toast-title{font-size:11px;font-weight:700;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toast-desc{font-size:10px;font-family:var(--fs);font-style:italic;opacity:.75;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.toast-reward{font-size:10px;color:#90EE90;font-weight:700;margin-top:2px}
/* ── MODALS ── */
.modal-wrap{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:2000;align-items:center;justify-content:center;backdrop-filter:blur(8px);padding:12px}
.modal-wrap.open{display:flex}.modal-wrap.open .modal{animation:modal-in 0.35s cubic-bezier(.22,1,.36,1) forwards}
.modal{background:var(--card2);border:1px solid var(--b2);border-radius:var(--r2);padding:18px;max-width:440px;width:100%;max-height:88dvh;overflow-y:auto;position:relative;box-shadow:0 6px 40px rgba(0,0,0,.7);scrollbar-width:thin;scrollbar-color:var(--b1) transparent}
.modal-title{font-size:14px;font-weight:700;margin-bottom:6px;letter-spacing:.06em;color:var(--bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-sub{font-size:12px;color:var(--t2);margin-bottom:12px;line-height:1.6;font-style:italic;font-family:var(--fs)}
.modal-section{margin-bottom:11px}
.modal-label{font-size:9px;color:var(--t2);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.modal-label.danger{color:#5a2020}
.modal-input{width:100%;background:var(--bg);border:1px solid var(--b1);border-radius:var(--r);padding:7px 9px;color:var(--t1);font-family:monospace;font-size:10px;outline:none;resize:none;transition:border-color .15s}
.modal-input:focus{border-color:var(--b3)}
.modal-row{display:flex;flex-wrap:wrap;align-items:center}
.modal-actions{display:flex;gap:7px;justify-content:flex-end;margin-top:11px}
.modal-x{position:absolute;top:11px;right:11px;background:transparent;border:none;color:var(--t2);font-size:17px;cursor:pointer;padding:3px 6px;border-radius:var(--r);transition:color .15s}
.modal-x:hover{color:var(--t1)}
.danger-zone{border-top:1px solid var(--b1);padding-top:11px;margin-top:2px}
#share-preview{width:100%;border-radius:var(--r);border:1px solid var(--b1);margin-bottom:11px;display:block}
.share-fb{font-size:10px;color:var(--green);text-align:center;margin-top:5px;opacity:0;transition:opacity .2s;min-height:14px}
.share-fb.visible{opacity:1}
.copy-ok{font-size:10px;color:var(--green);opacity:0;transition:opacity .2s}
.copy-ok.visible{opacity:1}
.prestige-warn{background:rgba(120,40,40,.08);border:1px solid rgba(120,40,40,.2);border-radius:var(--r);padding:10px;margin-bottom:11px;font-family:var(--fs);font-style:italic;color:#b08080;font-size:12px;line-height:1.6}
.prestige-reward{font-size:12px;color:var(--gold);margin-bottom:11px}
.btn{padding:8px 13px;border-radius:var(--r);font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.07em;cursor:pointer;transition:all .15s;border:1px solid transparent}
.btn-primary{background:var(--green);border-color:var(--green);color:#fff}
.btn-primary:hover{background:var(--green2)}
.btn-sec{background:transparent;border-color:var(--b1);color:var(--t2)}
.btn-sec:hover{border-color:var(--b3);color:var(--t1)}
.btn-danger{background:transparent;border-color:#502828;color:#906060}
.btn-danger:hover{border-color:#783838;color:#bb7070}
.w100{width:100%}
.hidden{display:none!important}
/* ── POV OVERLAY ── */
/* POV overlay: two states */
#pov-overlay{
  position:fixed;inset:0;z-index:3000;
  background:#000;
  opacity:0;pointer-events:none;
  transition:opacity 0.25s ease;
  display:flex;align-items:center;justify-content:center;padding:12px;
}
/* State 1: dark background only (Remain in Dark) */
#pov-overlay.pov-visible{
  opacity:1;pointer-events:all;
}
/* State 2: dark + overlay box visible */
#pov-overlay.pov-overlay-visible .pov-box{
  opacity:1;pointer-events:all;
  transform:translateY(0);
}
#pov-overlay:not(.pov-overlay-visible) .pov-box{
  opacity:0;pointer-events:none;
  transform:translateY(10px);
  transition:opacity 0.2s ease, transform 0.2s ease;
}
.pov-box{transition:opacity 0.3s ease, transform 0.3s ease;}
#pov-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.pov-scan{position:absolute;inset:0;pointer-events:none;z-index:2;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.015) 3px,rgba(255,255,255,.015) 4px)}
.pov-box{position:relative;z-index:3;max-width:500px;width:100%;max-height:90dvh;overflow-y:auto;text-align:center;padding:clamp(18px,4vw,42px) clamp(14px,4vw,34px);border:1px solid #2a2a40;border-radius:8px;background:rgba(4,5,10,.97);display:flex;flex-direction:column;align-items:center;scrollbar-width:thin;scrollbar-color:#1a1a28 transparent}
.pov-box::-webkit-scrollbar{width:3px}
.pov-box::-webkit-scrollbar-thumb{background:#1a1a28;border-radius:2px}
.pov-badge{font-family:var(--fm);font-size:clamp(8px,1.5vw,10px);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#6070a0;margin-bottom:clamp(10px,2vw,18px);border:1px solid #1e2038;padding:4px 14px;border-radius:20px;background:rgba(30,32,56,.5)}
.pov-headline{font-family:var(--fs);font-style:italic;font-size:clamp(14px,3vw,20px);color:#8898cc;line-height:1.7;margin-bottom:clamp(8px,2vw,14px)}
.pov-rule{width:40px;height:1px;background:#2a2a40;margin-bottom:clamp(10px,2vw,16px)}
.pov-truth{font-family:var(--fm);font-size:clamp(16px,4vw,28px);font-weight:700;color:#c0ccee;letter-spacing:.04em;margin-bottom:clamp(6px,1.5vw,12px);line-height:1.2}
.pov-subtext{font-family:var(--fs);font-style:italic;font-size:clamp(11px,2vw,14px);color:#6878a8;line-height:1.8;margin-bottom:clamp(8px,2vw,12px)}
.pov-detail{font-family:var(--fm);font-size:clamp(9px,1.5vw,11px);color:#4a5880;line-height:1.9;letter-spacing:.04em;margin-bottom:clamp(10px,2.5vw,18px)}
.pov-blockquote{border-top:1px solid #181828;border-bottom:1px solid #181828;padding:clamp(8px,2vw,12px) 0;margin-bottom:clamp(12px,2.5vw,18px);width:100%}
.pov-quote{font-family:var(--fs);font-style:italic;font-size:clamp(10px,1.8vw,13px);color:#505878;line-height:1.9}
.pov-live-row{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:clamp(14px,3vw,22px);gap:10px;flex-wrap:wrap}
.pov-gp-label{font-size:clamp(8px,1.4vw,10px);color:#384060;letter-spacing:.06em;margin-bottom:3px;font-family:var(--fm);text-align:left}
.pov-gp-val{font-size:clamp(12px,2.5vw,15px);font-weight:700;color:#5868a0;font-family:var(--fm);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pov-bonus-col{text-align:right;flex-shrink:0}
.pov-bonus{font-size:clamp(8px,1.4vw,10px);font-weight:700;font-family:var(--fm);color:#2a4820;letter-spacing:.1em;border:1px solid #1a2a14;padding:3px 9px;border-radius:3px;margin-bottom:3px;display:inline-block;background:rgba(20,40,15,.4)}
.pov-bonus-note{font-size:clamp(8px,1.2vw,9px);color:#1c2c14;font-family:var(--fm)}
.pov-actions{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}
.pov-stay{background:rgba(20,30,60,.8);border:2px solid #3a4878;color:#8898cc;padding:clamp(9px,2vw,13px) clamp(16px,4vw,32px);border-radius:4px;cursor:pointer;font-family:var(--fm);font-size:clamp(9px,1.8vw,11px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:all .3s;width:100%;display:flex;flex-direction:column;align-items:center;gap:4px}
.pov-stay:hover{border-color:#6878b8;color:#b0bce8;background:rgba(30,40,80,.8)}
.pov-stay-sub{font-size:clamp(8px,1.3vw,9px);color:#4a5880;letter-spacing:.08em;font-weight:400;text-transform:none}
.pov-exit{background:transparent;border:1px solid #222232;color:#3a3a50;padding:clamp(7px,1.5vw,9px) clamp(14px,3vw,24px);border-radius:3px;cursor:pointer;font-family:var(--fm);font-size:clamp(9px,1.5vw,10px);letter-spacing:.1em;transition:all .3s;width:100%}
.pov-exit:hover{border-color:#3a3a58;color:#6868a0}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
/* TABLET */
@media(max-width:1100px){:root{--sw:255px}}
/* LANDSCAPE SHORT */
@media(max-height:500px)and(orientation:landscape){
  :root{--hh:36px;--sw:200px}
  .game-title,.title-sep,.h-stat-time{display:none}
  .h-stat-value{font-size:13px}
  #rank-hud{display:none}
  .pov-blockquote,.pov-detail{display:none}
  .pov-box{padding:10px 12px}
  /* Ensure stone canvas fills available space */
  #world-canvas{
    position:absolute;
    top:0;left:0;
    width:100% !important;
    height:calc(100vh - var(--hh)) !important;
    min-height:200px;
  }
  #world-panel{
    position:relative;
    height:calc(100vh - var(--hh));
    overflow:hidden;
  }
  /* Stone panel sidebar narrower in landscape */
  .sidebar{width:var(--sw);min-width:var(--sw);}
}
/* PORTRAIT MOBILE */
@media(max-width:768px){
  :root{--hh:44px;--sw:0px;--tabh:40px}
  #app{grid-template-columns:1fr;grid-template-rows:var(--hh) 1fr 44vh}
  #world-wrap{grid-column:1;grid-row:2}
  #sidebar{grid-column:1;grid-row:3;border-left:none;border-top:1px solid var(--b1);width:100%}
  #rank-hud{max-width:130px}
  .game-title,.title-sep,.h-stat-time{display:none}
  .h-stat-value{font-size:14px}
  .hdr-btn{padding:4px 7px;font-size:11px}
  .lang-btn{font-size:12px}
  #notification-container{right:6px;left:6px;max-width:none;top:48px}
  .event-msg{display:none}
  .card{margin:5px 5px 0;padding:8px}
  /* portrait: wrap scrolls naturally */
}
/* TINY */
@media(max-width:380px){
  :root{--hh:40px}
  .h-stat-value{font-size:12px}
  .hdr-btn{font-size:10px;padding:3px 6px}
  .lang-btn{font-size:11px;padding:2px 4px}
}
button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
::-webkit-scrollbar{width:3px;height:3px}
::-webkit-scrollbar-thumb{background:var(--b1);border-radius:2px}

/* ══════════════════════════════════════════════════════════════
   SHARE MODAL V8
   ══════════════════════════════════════════════════════════════ */
.modal-share-wide{max-width:560px}

.share-card-wrap{
  width:100%;border-radius:var(--r2);overflow:hidden;
  border:1px solid var(--b2);margin-bottom:14px;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
}
#share-preview{width:100%;display:block;border-radius:0}

.share-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}

.btn-share-native{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,rgba(72,138,92,.15),rgba(72,138,92,.08));
  border:1px solid rgba(72,138,92,.4);border-radius:var(--r2);
  color:var(--t1);padding:12px 16px;cursor:pointer;
  transition:all .2s;width:100%;text-align:left;
}
.btn-share-native:hover{border-color:var(--green);background:rgba(72,138,92,.15)}
.share-native-icon{font-size:24px;flex-shrink:0}
.share-native-text{display:flex;flex-direction:column;gap:2px}
.share-native-label{font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--green2)}
.share-native-sub{font-family:var(--fs);font-style:italic;font-size:10px;color:var(--t2)}

.share-btns-row{display:flex;gap:6px}
.share-btn-sm{flex:1;text-align:center;padding:8px 6px!important;font-size:10px}

.share-url-row{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px;background:rgba(255,255,255,.02);
  border:1px solid var(--b1);border-radius:var(--r);
  margin-bottom:8px;
}
.share-url-label{font-size:10px;color:var(--t2);font-family:var(--fm)}
.share-url-link{
  font-size:11px;font-weight:700;color:var(--gold);
  font-family:var(--fm);text-decoration:none;letter-spacing:.05em;
}
.share-url-link:hover{text-decoration:underline}

/* ── SAVE MODAL V8 ── */
.save-info-cards{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.save-info-card{
  display:flex;align-items:flex-start;gap:10px;
  background:rgba(255,255,255,.025);border:1px solid var(--b1);
  border-radius:var(--r);padding:10px 12px;
}
.save-info-icon{font-size:18px;flex-shrink:0;margin-top:1px}
.save-info-label{font-size:10px;font-weight:700;color:var(--t1);letter-spacing:.05em;margin-bottom:3px}
.save-info-desc{font-size:10px;color:var(--t2);font-family:var(--fs);font-style:italic;line-height:1.5}

/* POV Button pulsating effect */
/* ── POV BUTTON — premium ── */
.pov-main {
  position: relative;
  overflow: visible !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 6px 12px !important;
  min-width: 64px;
  background: linear-gradient(135deg, rgba(200,164,74,0.08), rgba(200,164,74,0.03)) !important;
  border-color: rgba(200,164,74,0.35) !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
  letter-spacing: 0 !important;
}
.pov-main:hover {
  background: linear-gradient(135deg, rgba(200,164,74,0.18), rgba(200,164,74,0.08)) !important;
  border-color: rgba(200,164,74,0.7) !important;
  box-shadow: 0 0 12px rgba(200,164,74,0.2), inset 0 0 8px rgba(200,164,74,0.05) !important;
  transform: translateY(-1px);
}
.pov-icon {
  font-size: 14px;
  line-height: 1;
  filter: drop-shadow(0 0 4px rgba(200,164,74,0.4));
}
.pov-btn-label {
  font-family: var(--fm);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(200,164,74,0.9);
  line-height: 1;
}
.pov-btn-sub {
  font-family: var(--fm);
  font-size: 7.5px;
  letter-spacing: 0.06em;
  color: rgba(150,200,120,0.7);
  line-height: 1;
}

/* Outer ring pulse — idle */
.pov-main::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 9px;
  border: 1.5px solid rgba(200,164,74,0.4);
  animation: pov-ring 2.8s ease-in-out infinite;
  pointer-events: none;
}
.pov-main::after {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 12px;
  border: 1px solid rgba(200,164,74,0.15);
  animation: pov-ring 2.8s ease-in-out infinite 0.9s;
  pointer-events: none;
}
@keyframes pov-ring {
  0%,100% { opacity: 0.8; transform: scale(1); }
  50%      { opacity: 0; transform: scale(1.18); }
}

/* ACTIVE STATE — stone is seeing */
.pov-main.pov-active {
  background: linear-gradient(135deg, rgba(30,60,100,0.6), rgba(20,40,80,0.4)) !important;
  border-color: rgba(100,160,255,0.6) !important;
  box-shadow: 0 0 16px rgba(80,140,255,0.25), 0 0 4px rgba(80,140,255,0.15) !important;
}
.pov-main.pov-active .pov-icon { filter: drop-shadow(0 0 6px rgba(100,180,255,0.8)); }
.pov-main.pov-active .pov-btn-label { color: rgba(120,180,255,0.95); }
.pov-main.pov-active .pov-btn-sub { color: rgba(150,220,150,0.8); }
.pov-main.pov-active::before {
  border-color: rgba(100,160,255,0.5);
  animation: pov-ring-active 1.4s ease-in-out infinite;
}
.pov-main.pov-active::after {
  border-color: rgba(100,160,255,0.2);
  animation: pov-ring-active 1.4s ease-in-out infinite 0.7s;
}
@keyframes pov-ring-active {
  0%,100% { opacity: 0.9; transform: scale(1); }
  50%      { opacity: 0.1; transform: scale(1.22); box-shadow: 0 0 12px rgba(80,140,255,0.3); }
}
/* ══════════════════════════════════════════════════════════
   STONE SIMULATOR — ANIMATION SYSTEM
   ══════════════════════════════════════════════════════════ */

/* Toast: slide in from right with bounce */
@keyframes toast-in {
  0%   { opacity:0; transform:translateX(60px) scale(0.85); }
  60%  { opacity:1; transform:translateX(-6px) scale(1.02); }
  80%  { transform:translateX(3px) scale(0.99); }
  100% { opacity:1; transform:translateX(0) scale(1); }
}
@keyframes toast-out {
  0%   { opacity:1; transform:translateX(0) scale(1); }
  100% { opacity:0; transform:translateX(40px) scale(0.9); }
}

/* Epic achievement: pop from center with shimmer */
@keyframes ach-epic-in {
  0%   { opacity:0; transform:scale(0.6) rotate(-3deg); }
  50%  { opacity:1; transform:scale(1.08) rotate(1deg); }
  70%  { transform:scale(0.97) rotate(-0.5deg); }
  100% { opacity:1; transform:scale(1) rotate(0deg); }
}

/* Rank up stone pulse */
@keyframes stone-rankup {
  0%   { filter:brightness(1) drop-shadow(0 0 0px rgba(200,164,74,0)); }
  30%  { filter:brightness(1.8) drop-shadow(0 0 24px rgba(200,164,74,0.9)); }
  60%  { filter:brightness(1.3) drop-shadow(0 0 14px rgba(200,164,74,0.5)); }
  100% { filter:brightness(1) drop-shadow(0 0 0px rgba(200,164,74,0)); }
}

/* GP counter pop */
@keyframes gp-pop {
  0%   { transform:scale(1); color:inherit; }
  30%  { transform:scale(1.18); color:#e8c460; }
  60%  { transform:scale(1.06); }
  100% { transform:scale(1); color:inherit; }
}

/* Event ticker slide in */
@keyframes event-slide-in {
  0%   { opacity:0; transform:translateY(-10px); }
  100% { opacity:1; transform:translateY(0); }
}

/* Modal scale in */
@keyframes modal-in {
  0%   { opacity:0; transform:scale(0.88) translateY(16px); }
  60%  { transform:scale(1.02) translateY(-2px); }
  100% { opacity:1; transform:scale(1) translateY(0); }
}
@keyframes modal-out {
  0%   { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(0.94) translateY(8px); }
}

/* Panel tab content fade */
@keyframes panel-fade-in {
  0%   { opacity:0; transform:translateY(8px); }
  100% { opacity:1; transform:translateY(0); }
}

/* Stone click ripple */
@keyframes stone-click-ripple {
  0%   { transform:scale(0.8); opacity:0.8; }
  100% { transform:scale(2.2); opacity:0; }
}

/* GP float up (reward numbers) */
@keyframes gp-float {
  0%   { opacity:1; transform:translateY(0) scale(1); }
  100% { opacity:0; transform:translateY(-45px) scale(0.8); }
}

/* Sidebar rank badge pop on change */
@keyframes rank-badge-pop {
  0%   { transform:scale(1); }
  40%  { transform:scale(1.22); filter:brightness(1.6); }
  70%  { transform:scale(0.95); }
  100% { transform:scale(1); filter:brightness(1); }
}

/* Achievement unlock gold flash */
@keyframes ach-unlock-flash {
  0%,100% { background:transparent; }
  50%  { background:rgba(200,164,74,0.15); box-shadow:0 0 20px rgba(200,164,74,0.3); }
}

/* Prestige dramatic flash */
@keyframes prestige-flash {
  0%   { opacity:0; }
  10%  { opacity:1; }
  30%  { opacity:0.3; }
  50%  { opacity:0.8; }
  100% { opacity:0; }
}

/* POV button pulse - existing but enhanced */
@keyframes pov-pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(200,164,74,0.5); }
  50%  { box-shadow:0 0 0 5px rgba(200,164,74,0); }
}
@keyframes pov-pulse-active {
  0%,100% { box-shadow:0 0 0 0 rgba(120,168,216,0.6); }
  50%  { box-shadow:0 0 0 6px rgba(120,168,216,0); }
}


/* POV dark mode: show hint text when overlay is closed but dark is active */
#pov-overlay.pov-visible:not(.pov-overlay-visible)::before {
  content: attr(data-exit-hint);
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--fm);
  font-size: 10px;
  color: rgba(200,164,74,0.5);
  letter-spacing: .12em;
  text-transform: uppercase;
  pointer-events: none;
  z-index: 4;
  white-space: nowrap;
}

/* POV dark mode: header floats above the dark overlay so EXIT POV is visible */
#pov-overlay.pov-visible:not(.pov-overlay-visible) {
  pointer-events: none; /* let clicks through to header */
}
/* Header always on top when POV dark is active */
body.pov-dark #header {
  position: relative;
  z-index: 4000; /* above pov-overlay (3000) */
}
body.pov-dark #header .hdr-btn.pov-active {
  box-shadow: 0 0 0 2px rgba(200,164,74,0.8), 0 0 16px rgba(200,164,74,0.4);
  border-color: #c8a44a;
  color: #e8c460;
}

/* ── DAILY STONE ── */
.daily-badge{font-family:var(--fm);font-size:14px;font-weight:700;color:var(--gold);letter-spacing:.12em;margin-bottom:4px}
.daily-count{font-size:9px;color:var(--t2);font-family:var(--fs);font-style:italic}

/* ── STONE LEGACY ── */
.legacy-note{font-size:11px;font-family:var(--fs);font-style:italic;color:var(--t1);line-height:1.6;margin-bottom:5px;border-left:2px solid var(--gold);padding-left:8px}
.legacy-meta{font-size:9px;color:var(--t3);letter-spacing:.05em}

/* ── JOURNAL MODAL ── */
.journal-text{font-family:var(--fs);font-style:italic;font-size:13px;color:var(--t2);line-height:1.9;padding:14px;background:rgba(255,255,255,.02);border:1px solid var(--b1);border-radius:var(--r);margin-bottom:4px}

/* Tooltip stays within viewport bounds */
#world-canvas{touch-action:manipulation;}

/* Portrait phone: larger touch targets */
@media(max-width:480px)and(orientation:portrait){
  #world-canvas{cursor:pointer;}
  .hdr-btn{min-width:36px;min-height:36px;font-size:10px;padding:6px 8px;}
}

/* GP counter animation */
.gp-pop { animation: gp-pop 0.5s cubic-bezier(.22,1,.36,1); }

/* GP float reward */
.gp-float-reward {
  position:fixed;
  font-family:var(--fm);
  font-size:13px;
  font-weight:700;
  color:#90EE90;
  pointer-events:none;
  z-index:9999;
  animation:gp-float 1.2s cubic-bezier(.22,1,.36,1) forwards;
  text-shadow:0 0 8px rgba(144,238,144,0.5);
}

/* Rank up badge animation */
.rank-badge-animating { animation: rank-badge-pop 0.6s cubic-bezier(.22,1,.36,1); }

/* Achievement unlock */
.achievement.just-unlocked { animation: ach-unlock-flash 0.8s ease; }

/* Stone rank up canvas glow overlay */
#stone-rankup-overlay {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:10;
  opacity:0;
  background:radial-gradient(ellipse at center, rgba(200,164,74,0.4) 0%, transparent 70%);
  transition:opacity 0.1s;
}
#stone-rankup-overlay.active {
  animation:prestige-flash 1.2s ease forwards;
}

/* Event ticker animation */
#event-title, #event-message {
  transition: opacity 0.2s ease;
}
.event-changing #event-title,
.event-changing #event-message {
  opacity: 0;
}

/* ═══════════════════════════════════════════════════════════
   PREMIUM UI UPGRADES
   ═══════════════════════════════════════════════════════════ */

/* Rank card gold glow */
.rank-card-row {
  position: relative;
}
.rank-name-big {
  background: linear-gradient(135deg, #e8c460, #c8a44a, #f0d870);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Event ticker tiers */
#event-ticker[data-tier="epic"] { border-left: 3px solid #c8a44a; }
#event-ticker[data-tier="rare"] { border-left: 3px solid #7060d0; }
#event-ticker[data-tier="uncommon"] { border-left: 3px solid #4080c0; }
#event-ticker[data-tier="common"] { border-left: 3px solid #406840; }
#event-ticker[data-tier="ambient"] { border-left: 3px solid rgba(255,255,255,0.1); }

/* Mini log entry polish */
.mini-log-entry { border-radius: 5px; }
.mini-log-entry.tier-epic { background: rgba(200,164,74,0.06); border-left: 2px solid rgba(200,164,74,0.4); }
.mini-log-entry.tier-rare { background: rgba(112,96,208,0.06); border-left: 2px solid rgba(112,96,208,0.4); }
.mini-log-entry.tier-uncommon { background: rgba(64,128,192,0.05); border-left: 2px solid rgba(64,128,192,0.3); }

/* Toast tier colors */
.toast.tier-epic { border-color: rgba(200,164,74,0.6); box-shadow: 0 4px 20px rgba(200,164,74,0.2); }
.toast.tier-rare { border-color: rgba(140,100,255,0.5); box-shadow: 0 4px 20px rgba(140,100,255,0.15); }
.toast.tier-rankup { border-color: rgba(100,200,100,0.5); box-shadow: 0 4px 20px rgba(100,200,100,0.15); }

/* Sidebar gradient accent */
.sidebar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200,164,74,0.4), transparent);
  pointer-events: none;
}
.sidebar { position: relative; }

/* Card hover shimmer */
.card { position: relative; overflow: hidden; }
.card::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.02), transparent);
  transition: left 0.5s ease;
  pointer-events: none;
}
.card:hover::after { left: 150%; }

/* Quick stats gold value */
.qs-v.gold {
  background: linear-gradient(135deg, #f0d060, #c8a44a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Progress bar shimmer */
.progress-fill, .rank-fill {
  position: relative;
  overflow: hidden;
}
.progress-fill::after {
  content: '';
  position: absolute;
  top: 0; left: -200%;
  width: 80%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  animation: progress-shimmer 2.5s ease-in-out infinite;
}
@keyframes progress-shimmer {
  0% { left: -200%; }
  100% { left: 200%; }
}

/* Achievement unlock gold border */
.achievement.unlocked {
  border-color: rgba(200,164,74,0.3);
  background: rgba(200,164,74,0.04);
}
.achievement.unlocked .ach-check {
  color: #c8a44a;
  text-shadow: 0 0 8px rgba(200,164,74,0.5);
}

/* POV button enhanced pulse handled by .pov-main styles */

/* World tags styled */
.world-tag {
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.08);
}

/* Daily stone badge */
.daily-badge {
  font-size: 15px;
  background: linear-gradient(135deg, #f0d060, #c8a44a, #f0d060);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
}

/* GP float reward bigger */
.gp-float-reward {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.05em;
}
