.g48{width:min(460px,92%);margin:0 auto}
.g48-bar{display:flex;gap:8px;margin-bottom:10px;align-items:stretch}
.g48-box{flex:1;background:#fbf6ea;border:1px solid #dccbab;border-radius:10px;padding:6px 10px;text-align:center;font-size:12px;color:#7a6650}
.g48-box b{display:block;font-size:22px;color:#262320;font-variant-numeric:tabular-nums;line-height:1.2}
.g48-goal{flex:1.2;background:#262320;color:#f3ead8;border-color:#262320}
.g48-goal b{color:#f6d27a}
.g48-board{position:relative;width:100%;aspect-ratio:1;background:#8a5a32;border-radius:12px;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 10px 22px rgba(70,40,10,.3),inset 0 0 0 1px rgba(0,0,0,.15);cursor:grab}
.g48-cell{position:absolute;background:rgba(255,240,210,.2);border-radius:8px}
.g48-tile{position:absolute;left:0;top:0;transition:transform .1s ease-in-out;z-index:2;will-change:transform}
.g48-tile.dead{z-index:1}
.g48-in{width:100%;height:100%;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;box-shadow:inset 0 -3px 0 rgba(0,0,0,.13),0 2px 3px rgba(60,30,5,.25)}
.g48-tile.new .g48-in{animation:g48new .18s ease .08s backwards}
.g48-tile.pop .g48-in{animation:g48pop .2s ease}
@keyframes g48new{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes g48pop{0%{transform:scale(1)}50%{transform:scale(1.18)}100%{transform:scale(1)}}
.noanim .g48-tile{transition:none}
.g48-help{font-size:13px;color:#7a6650;text-align:center;margin-top:10px}
#g48-bests{font-size:13px;color:#5c554b;margin:8px 0 0;line-height:1.7}
