.mob-stage{position:relative;width:100%;height:min(78vh,820px);min-height:320px;border-radius:14px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%,#f7f7ec 0%,#e6e8d6 60%,#d7dbc4 100%)}
.mob-stage .mob-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.mob-stage[hidden],.mob-flat[hidden]{display:none}
.mob-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}
.mob-wrap #status{font-weight:700;min-height:1.4em;text-align:center}
.mob-flat{display:grid;grid-template-columns:22px repeat(5,1fr);width:min(100%,360px,calc(80vh * 5 / 17.5 + 22px));margin:0 auto;user-select:none}
.mob-flat .sq{aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;font-size:min(30px,4.6vh)}
.mob-flat .sq.l{background:#ebecd0}.mob-flat .sq.d{background:#739552}
.mob-flat .sq.sel{background:#f5f682}.mob-flat .sq.last{box-shadow:inset 0 0 0 100px #f5f68266}
.mob-flat .sq.check{background:radial-gradient(#e0503c,#e0503c00 75%)}
.mob-flat .sq.tgt::after{content:'';width:28%;height:28%;border-radius:50%;background:#1d2a1260;position:absolute}
.mob-flat .sq.tgt.cap::after{width:84%;height:84%;background:none;border:4px solid #1d2a1250}
.mob-flat .rk{font:600 11px ui-monospace,monospace;color:var(--muted,#777);display:flex;align-items:center;justify-content:center}
.mob-flat .twist{grid-column:1/-1;font:600 12px system-ui,sans-serif;text-align:center;color:#3f5230;background:#73955222;padding:3px 0;border-radius:6px;margin:3px 0}
.mob-views{display:flex;gap:8px;flex-wrap:wrap}.mob-views button{flex:1}
@media (max-width:900px){.mob-stage{height:min(100vw,72vh)}}
