*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
:root{ --gold:#ffd23a; }
html,body{height:100%;}
body{
  font-family:"PingFang SC","Microsoft YaHei",-apple-system,system-ui,sans-serif;
  background:#05101d;color:#fff;overflow:hidden;-webkit-user-select:none;user-select:none;
}

/* WebGL 画布(铺底) */
#cr-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block;touch-action:none;}

/* 舞台: 顶栏在上, 控制面板在下, 中间透出 3D 桌面 */
.cr-stage{position:relative;z-index:1;width:100%;height:100vh;height:100dvh;
  display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;overflow:hidden;}
.cr-stage>*{pointer-events:auto;}

/* 顶栏 */
.cr-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;
  padding:9px 13px;background:linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,0));}
.cr-home{font-size:19px;text-decoration:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.4);border:1px solid rgba(255,210,58,.35);border-radius:10px;flex:0 0 auto;}
.cr-title{flex:1;text-align:left;font-size:20px;font-weight:900;letter-spacing:3px;color:#fff;font-style:italic;
  text-shadow:0 2px 6px rgba(0,0,0,.7);}
.cr-title span{display:block;font-size:11px;letter-spacing:2px;color:var(--gold);font-style:normal;font-weight:700;}
.cr-stats{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:0 0 auto;}
.cr-bal{display:flex;align-items:center;gap:5px;font-weight:800;font-size:15px;color:var(--gold);
  background:rgba(0,0,0,.42);border:1px solid rgba(255,210,58,.45);border-radius:18px;padding:4px 11px;}
.cr-totbet{font-size:11px;color:#cfe0f5;}
.cr-totbet b{color:#fff;}

/* 结算提示(浮在面板上方) */
.cr-result{position:absolute;left:50%;transform:translateX(-50%);z-index:6;
  bottom:calc(var(--panelh,176px) + 10px);
  min-width:180px;max-width:90%;text-align:center;font-weight:900;font-size:15px;white-space:nowrap;
  color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,210,58,.5);border-radius:18px;padding:6px 16px;
  text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none;}
.cr-result.win{color:#16140a;background:linear-gradient(180deg,#ffe98a,var(--gold),#e6a012);border-color:#fff3c0;
  box-shadow:0 0 22px rgba(255,210,58,.75);}
.cr-result.lose{color:#ffd3d3;}

/* 绿色开骰圆钮 */
.cr-roll{position:absolute;right:16px;z-index:7;bottom:calc(var(--panelh,176px) + 14px);
  width:82px;height:82px;border-radius:50%;border:none;cursor:pointer;
  background:radial-gradient(circle at 42% 30%,#5fe08a,#1f9a4a 55%,#136b33);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  box-shadow:0 8px 22px rgba(0,0,0,.55),inset 0 3px 6px rgba(255,255,255,.45),0 0 0 4px rgba(255,255,255,.14);
  transition:transform .08s,filter .15s;}
.cr-roll span{font-size:14px;font-weight:900;letter-spacing:2px;text-shadow:0 1px 2px rgba(0,0,0,.5);}
.cr-roll:active{transform:scale(.94);}
.cr-roll:disabled{filter:grayscale(.5) brightness(.85);cursor:default;}

/* 底部控制面板 */
.cr-panel{flex:0 0 auto;position:relative;z-index:5;
  background:linear-gradient(180deg,rgba(5,16,29,0),rgba(4,12,22,.85) 26%,rgba(3,9,17,.97));
  padding-top:8px;}

/* 下注区 */
.cr-bets{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0 12px 4px;}
.bet{position:relative;border:none;border-radius:11px;padding:8px 5px 6px;cursor:pointer;color:#fff;
  font-size:15px;font-weight:900;letter-spacing:1px;line-height:1.05;
  background:linear-gradient(180deg,#15643f,#0c4429);border:1.5px solid rgba(255,255,255,.16);
  box-shadow:inset 0 2px 6px rgba(255,255,255,.12),0 4px 9px rgba(0,0,0,.4);transition:transform .08s;}
.bet small{display:inline-block;font-size:10px;opacity:.82;font-weight:600;margin-left:3px;}
.bet b{display:block;font-size:10px;color:var(--gold);font-weight:800;margin-top:2px;}
.bet.big{background:linear-gradient(180deg,#9a2630,#6b1620);}
.bet.small{background:linear-gradient(180deg,#1f6fae,#114270);}
.bet.triple{background:linear-gradient(180deg,#7a4ecb,#4a2a8a);}
.bet.pair{background:linear-gradient(180deg,#b9821f,#7a5310);}
.bet:active{transform:scale(.96);}
.bet .stake{position:absolute;top:-7px;right:-6px;min-width:24px;height:24px;border-radius:14px;
  background:linear-gradient(180deg,#fff3c0,var(--gold),#d9920f);color:#3a2400;font-size:11px;font-weight:900;
  display:none;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.5);padding:0 5px;}
.bet.has .stake{display:flex;}
.bet.hit{animation:bethit .7s ease;}
@keyframes bethit{0%,100%{box-shadow:inset 0 2px 6px rgba(255,255,255,.12),0 4px 9px rgba(0,0,0,.4);}
  40%{box-shadow:0 0 0 3px var(--gold),0 0 22px rgba(255,210,58,.9);}}

/* 筹码 + 操作 */
.cr-ctrl{display:flex;align-items:center;gap:10px;
  padding:6px 12px calc(10px + env(safe-area-inset-bottom));}
.cr-chips{display:flex;gap:9px;flex:1;justify-content:center;}
.chip{width:44px;height:44px;border-radius:50%;border:3px dashed rgba(255,255,255,.7);cursor:pointer;
  font-weight:900;font-size:12px;color:#fff;position:relative;
  box-shadow:0 4px 8px rgba(0,0,0,.45),inset 0 0 0 4px rgba(0,0,0,.12);transition:transform .1s;}
.chip.c10{background:radial-gradient(circle at 50% 38%,#6fb0ff,#1f5fbf);}
.chip.c50{background:radial-gradient(circle at 50% 38%,#7be08a,#1d8a3c);}
.chip.c100{background:radial-gradient(circle at 50% 38%,#3a3f4a,#15181f);}
.chip.c500{background:radial-gradient(circle at 50% 38%,#ff7ea0,#b3123f);}
.chip.on{transform:translateY(-5px) scale(1.08);border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,210,58,.55),0 6px 12px rgba(0,0,0,.5);}
.cr-clear{flex:0 0 auto;border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:11px 16px;font-size:14px;font-weight:900;
  color:#fff;background:linear-gradient(180deg,#555,#333);cursor:pointer;}
.cr-clear:active{transform:scale(.96);}

@media (max-height:620px){
  .cr-roll{width:66px;height:66px;}
  .bet{font-size:13px;padding:6px 4px 5px;}
  .chip{width:38px;height:38px;}
}
