.sl-course{position:relative;width:max-content}.sl-course .bg-ladder-cell{position:relative;padding:2px;text-align:left}.sl-number,.sl-token{position:relative;z-index:2;background:var(--surface);color:var(--text);border-radius:3px;padding:0 2px;font-weight:700}.sl-token{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--line-strong);width:22px;height:22px}.sl-token[data-player="0"]{background:var(--player-a-bg);color:var(--player-a-text)}.sl-token[data-player="1"]{background:var(--player-b-bg);color:var(--player-b-text)}.sl-connections{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.sl-ladder{stroke:var(--accent);stroke-width:6;fill:none}.sl-snake{stroke:var(--success);stroke-width:13;stroke-linecap:round;fill:var(--success)}.sl-snake .sl-eye{stroke:none;fill:var(--surface)}

/* In play the course fills the square arena; the grid follows the course instead of sizing it. */
.game-immersive .sl-course{width:min(var(--play-size),100%);max-width:640px;flex:none}
.game-immersive .sl-course .bg-ladders{width:100%;max-width:none}
.game-immersive .sl-course .bg-ladder-cell{font-size:clamp(9px,2.6vw,14px)}
/* Players 3 and 4 join at higher levels. */
.sl-token[data-player="2"]{background:#f2c94c;color:#1f2937}
.sl-token[data-player="3"]{background:#9b51e0;color:#fff}
.sl-course-wrap{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:6px;width:100%}
.sl-start{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px dashed var(--line-strong);border-radius:999px;background:var(--surface-2)}
.sl-start-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
