/* ============================================================
   $COAL — modals, shop, share, edge states (pixel kit)
   ============================================================ */
.modal-scrim{ position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center;
  background:rgba(6,4,2,.74); backdrop-filter:blur(3px); animation:toastIn .2s ease; padding:24px; }
.modal{ position:relative; max-height:90vh; overflow:auto; }
.modal-hd{ display:flex; align-items:flex-start; gap:16px; padding:16px 18px; }
.modal-hd .ttl{ font-family:var(--f-display); font-size:24px; color:var(--gold-bright); text-shadow:0 2px 0 #6b3f1a; }
.modal-sub{ font-size:13px; color:var(--bone-dim); margin-top:5px; max-width:430px; line-height:1.5; }
.modal-x{ position:absolute; top:12px; right:14px; width:32px; height:32px; border-radius:4px; color:var(--bone);
  font-size:14px; background:linear-gradient(180deg,#52462f,#332a1b); border:2px solid var(--frame-edge);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.12), 0 3px 0 var(--frame-edge); }
.modal-x:active{ transform:translateY(2px); }

/* ---- shop ---- */
.shop{ width:min(740px,94vw); }
.shop-mult{ margin-left:auto; margin-right:40px; align-self:center; font-size:13px; color:var(--bone-dim); }
.shop-mult b{ font-family:var(--f-ui); font-size:19px; color:var(--gold-bright); font-weight:700; }
.shop-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; padding:14px 18px; }
.shop-card{ display:flex; flex-direction:column; gap:8px; padding:14px;
  background:linear-gradient(180deg,#2a241a,#1a150e); border:2px solid var(--frame-edge); border-radius:4px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.06), 0 3px 0 var(--frame-edge); }
.shop-card-top{ display:flex; align-items:center; gap:11px; }
.shop-ic{ width:50px; height:50px; flex:none; }
.shop-ic .slot{ width:50px; height:50px; }
.shop-ic .slot img{ width:74%; }
.shop-icn{ font-size:24px; }
.shop-pow{ font-family:var(--f-ui); font-size:17px; font-weight:700; color:var(--gold-bright); margin-left:auto; }
.shop-name{ font-family:var(--f-display); font-size:20px; color:var(--bone); letter-spacing:.02em; }
.shop-blurb{ font-size:12.5px; color:var(--muted); line-height:1.45; flex:1; }
.shop-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:2px; }
.shop-gain{ font-size:12px; color:var(--bone-dim); }
.shop-gain i{ color:var(--green); font-style:normal; }
.shop-note{ font-size:12px; color:var(--muted); padding:2px 18px 18px; line-height:1.5; }

/* ---- share ---- */
.share{ width:min(420px,94vw); padding:16px; }
.sharecard{ position:relative; overflow:hidden; border-radius:4px; padding:20px; text-align:center;
  background:linear-gradient(180deg,#241a10,#0e0a06); border:2px solid var(--frame-edge); }
.sc-bg{ position:absolute; inset:0; background:radial-gradient(80% 50% at 50% 120%, rgba(245,166,35,.2), transparent 70%); }
.sharecard.won .sc-bg{ background:radial-gradient(80% 60% at 50% 110%, rgba(143,247,247,.28), transparent 70%); }
.sharecard.lost .sc-bg{ background:radial-gradient(80% 50% at 50% 120%, rgba(224,86,58,.18), transparent 70%); }
.sc-top{ position:relative; display:flex; align-items:center; justify-content:space-between; }
.sc-logo{ height:22px; } .sc-season{ font-size:9px; color:var(--bone-dim); }
.sc-hero{ position:relative; height:150px; display:flex; align-items:flex-end; justify-content:center; margin:4px 0; }
.sc-miner{ height:150px; filter:drop-shadow(0 8px 12px rgba(0,0,0,.6)); }
.sc-diamond{ position:absolute; top:0; left:50%; transform:translateX(-30%); width:52px; filter:drop-shadow(0 0 16px rgba(143,247,247,.9)); animation:flicker 1.4s infinite; }
.sc-depth{ position:relative; font-family:var(--f-display); font-size:44px; color:var(--bone); line-height:.9; }
.sc-depth span{ font-size:17px; color:var(--bone-dim); }
.sharecard.won .sc-depth{ color:var(--diamond-glow); text-shadow:0 0 20px rgba(143,247,247,.5); }
.sc-tag{ position:relative; font-size:15px; color:var(--gold-bright); font-weight:600; margin:8px 0 13px; }
.sharecard.lost .sc-tag{ color:var(--danger); }
.sc-stats{ position:relative; display:flex; justify-content:center; gap:18px; font-size:11px; color:var(--muted); border-top:2px solid rgba(245,166,35,.16); padding-top:11px; }
.sc-stats b{ font-family:var(--f-ui); color:var(--bone); font-size:14px; display:block; font-weight:700; }
.share-actions{ display:flex; gap:10px; margin-top:14px; }
.share-actions .pbtn{ flex:1; }

/* ---- away ---- */
.away{ width:min(360px,94vw); padding:24px; text-align:center; }
.away-img{ height:84px; margin:0 auto 10px; filter:drop-shadow(0 6px 8px rgba(0,0,0,.5)); animation:bobup 2.4s ease-in-out infinite; }
.away-kick{ font-size:11px; color:var(--gold); margin-bottom:6px; }
.away-line{ font-size:15px; color:var(--bone-dim); margin-bottom:18px; }
.away-line b{ color:var(--bone); }
.away-stats{ display:flex; gap:12px; margin-bottom:18px; }
.away-stats > div{ flex:1; padding:12px; background:rgba(0,0,0,.25); border:2px solid var(--frame-edge); border-radius:4px; }
.away-num{ font-family:var(--f-ui); font-size:21px; font-weight:700; color:var(--gold-bright); }
.away .pbtn{ width:100%; }

/* ---- edge overlays ---- */
.overlay{ position:fixed; inset:0; z-index:85; display:flex; align-items:center; justify-content:center;
  background:rgba(6,4,2,.82); backdrop-filter:blur(4px); animation:toastIn .35s ease; }
.ov-rumble{ text-align:center; animation:rumble .25s linear infinite; }
@keyframes rumble{0%,100%{transform:translate(0,0)}25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}
.spinner{ width:54px; height:54px; margin:0 auto 18px; border-radius:50%; border:5px solid rgba(245,166,35,.18); border-top-color:var(--gold); animation:spin 1s linear infinite; }
.ov-kick{ font-family:var(--f-display); font-size:24px; color:var(--gold); margin-bottom:8px; }
.ov-kick.win{ color:var(--diamond-glow); } .ov-kick.miss{ color:var(--danger); }
.ov-sub{ font-size:13px; color:var(--muted); max-width:380px; margin:0 auto; line-height:1.5; }
.ov-card{ position:relative; text-align:center; padding:30px 32px; max-width:440px; animation:toastIn .5s ease; }
.ov-miner{ height:120px; margin:0 auto 4px; filter:drop-shadow(0 8px 12px rgba(0,0,0,.6)); }
.ov-miner.slump{ transform:scaleX(-1) rotate(4deg); opacity:.9; filter:grayscale(.3) drop-shadow(0 8px 12px rgba(0,0,0,.6)); }
.ov-diamond{ position:absolute; top:18px; left:50%; transform:translateX(-50%); width:58px; filter:drop-shadow(0 0 20px rgba(143,247,247,.95)); animation:flicker 1.2s infinite; }
.ov-big{ font-family:var(--f-display); font-size:50px; color:var(--bone); line-height:.9; margin:6px 0 10px; }
.overlay.won .ov-big{ color:var(--diamond-glow); text-shadow:0 0 26px rgba(143,247,247,.5); }
.ov-prize{ font-family:var(--f-ui); font-size:24px; font-weight:700; color:var(--gold-bright); margin:14px 0 4px; text-shadow:0 2px 0 #6b3f1a; }
.ov-prize span{ font-size:12px; color:var(--muted); }
.ov-btns{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:22px; }
