/* The numbered board is upright for every player and the shared screen. */
.snakes-color-0{--snakes-color:#e36b43;--snakes-dark:#a33f22;--snakes-light:#ffe3ca}
.snakes-color-1{--snakes-color:#259a87;--snakes-dark:#126556;--snakes-light:#d2f2df}
.snakes-color-2{--snakes-color:#edb930;--snakes-dark:#966614;--snakes-light:#fff0b0}
.snakes-color-3{--snakes-color:#418bd0;--snakes-dark:#26598c;--snakes-light:#dcecff}
.snakes-color-4{--snakes-color:#9470cd;--snakes-dark:#61428e;--snakes-light:#ede2ff}
.snakes-color-5{--snakes-color:#d66d9d;--snakes-dark:#933e69;--snakes-light:#ffe1ef}
.snake-ladder-mode{background:radial-gradient(ellipse at 9% 5%,#f0e6a370,transparent 50%),radial-gradient(ellipse at 97% 88%,#bfdfc94a,transparent 48%),#f4f4e6}
.snake-ladder-mode.audience-mode{background:radial-gradient(ellipse at 30% 10%,#385b42,#17392f 75%)}
.snake-ladder-mode .main-container.game-container{max-width:1300px;padding-bottom:24px}
.snake-ladder-mode .table-main{display:block!important;min-width:0}
.snakes-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,300px);align-items:center;gap:22px;color:#294434;min-width:0;width:100%}
.snakes-board-stage{position:relative;padding:14px;border:1px solid #8eaa7180;border-radius:25px;min-width:0;background:radial-gradient(ellipse at 18% 4%,#e9edb8,transparent 65%),linear-gradient(140deg,#b3cc91,#73a879);box-shadow:inset 0 1px 0 #f7fad1,0 12px 30px #264c231c;isolation:isolate}
.snakes-board-stage:before,.snakes-board-stage:after{content:"";position:absolute;width:58px;height:14px;border:1px solid #456f3930;background:#366d3320;pointer-events:none;border-radius:100% 0 100% 0;z-index:-1;transform:rotate(-20deg);left:14px;top:1px}
.snakes-board-stage:after{inset:auto 16px 2px auto;transform:rotate(160deg)}
.snakes-board{position:relative;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));width:100%;max-width:660px;aspect-ratio:1;margin:0 auto;border:3px solid #507747;border-radius:10px;overflow:hidden;background:#fff9d9;box-shadow:0 0 0 3px #d7e4b4,inset 0 0 0 1px #faf6d0,0 5px 8px #254c2826;isolation:isolate}
.snakes-square{position:relative;min-width:0;min-height:0;border-right:1px solid #fefee895;border-bottom:1px solid #fefee895}
.snakes-square.tone-0{background:#f2edbb}.snakes-square.tone-1{background:#d9ebbf}.snakes-square.tone-2{background:#c7e7de}.snakes-square.tone-3{background:#f4d8b8}.snakes-square.tone-4{background:#eddfb9}
.snakes-number{position:absolute;left:3px;top:2px;z-index:4;color:#3c5736;font-size:clamp(10px,1.16vw,16px);line-height:1.12;font-weight:750;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 #fff5;padding:0 2px;border-radius:3px;background:#fffce16e;pointer-events:none}
.snakes-finish{background:#f5d27b!important}.snakes-finish .snakes-number{color:#614a17;background:#fff2b6;font-weight:850}
.snakes-finish-star{position:absolute;right:4px;bottom:2px;color:#b07919;font-size:clamp(15px,2.5vw,35px);opacity:.6;line-height:1;pointer-events:none}
.snakes-illustration{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}
.ladder-rungs{fill:none;stroke:#a97934;stroke-width:10;stroke-linecap:round}
.ladder-rungs>path{filter:drop-shadow(0 2px 0 #f5d491)}
.ladder-rail-outline{fill:none;stroke:#946b30;stroke-width:13;stroke-linecap:round}
.ladder-rail{fill:none;stroke:#eac479;stroke-width:8;stroke-linecap:round}
.ladder-grain{fill:none;stroke:#fff1c68c;stroke-width:2;stroke-linecap:round}
.snakes-serpent{--snake:#4b9b65;--snake-dark:#276347;--snake-shine:#9ccc80}
.serpent-1{--snake:#dc8688;--snake-dark:#a14d67;--snake-shine:#f7bba9}
.serpent-2{--snake:#8675b9;--snake-dark:#514c87;--snake-shine:#bfb3dc}
.serpent-3{--snake:#59a4b9;--snake-dark:#316d89;--snake-shine:#a2d7d9}
.serpent-4{--snake:#d79848;--snake-dark:#9a652e;--snake-shine:#f0c67c}
.snake-outline{fill:none;stroke:var(--snake-dark);stroke-width:32;stroke-linejoin:round;stroke-linecap:round}
.snake-body{fill:none;stroke:var(--snake);stroke-width:25;stroke-linejoin:round;stroke-linecap:round}
.snake-shine{fill:none;stroke:var(--snake-shine);stroke-width:11;stroke-linejoin:round;stroke-linecap:round;opacity:.8}
.snake-spots{fill:none;stroke:var(--snake-dark);stroke-width:5;stroke-linecap:round;stroke-dasharray:1 31;opacity:.44}
.snake-head{fill:var(--snake);stroke:var(--snake-dark);stroke-width:3}
.snake-tail{fill:var(--snake-shine)}
.snake-tongue{fill:none;stroke:#a84a4b;stroke-width:3;stroke-linecap:round}
.snake-smile{fill:none;stroke:var(--snake-dark);stroke-width:2;stroke-linecap:round}
.snakes-square-coins{position:absolute;inset:15px 3px 3px;display:grid;grid-template-columns:repeat(var(--coin-cols),minmax(0,1fr));grid-template-rows:repeat(var(--coin-rows),minmax(0,1fr));gap:2px;z-index:5;pointer-events:none}
.snakes-coin-slot{display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;container-type:size}
.snakes-coin,.snakes-expanded-coin,.snakes-tile-coin{display:block;width:25px;height:25px;flex-shrink:0;border:2px solid var(--snakes-dark);border-radius:50%;background:radial-gradient(circle at 28% 15%,#fff9 0,transparent 64%),var(--snakes-color);box-shadow:0 2px 0 var(--snakes-dark),0 3px 5px #19352c33,inset 0 0 0 2px #fff5;position:relative}
.snakes-coin:after,.snakes-expanded-coin:after,.snakes-tile-coin:after{content:"";position:absolute;inset:22%;border:1px solid #fff8;border-radius:50%}
.snakes-coin-slot .snakes-coin{width:90cqmin;height:90cqmin;max-width:30px;max-height:30px;border-width:1px;box-shadow:0 1px 0 var(--snakes-dark),0 2px 3px #17372c38,inset 0 0 0 1px #fff6}
.snakes-square.crowded .snakes-coin{border-width:.7px;box-shadow:0 .6px 0 var(--snakes-dark),inset 0 0 0 .5px #fff5}
.snakes-square-inspect{position:absolute;inset:0;z-index:6;width:100%;height:100%;min-width:0;min-height:0;padding:0;background:transparent;border:1px solid #52764990;border-radius:0}
.snakes-square-inspect:focus-visible{outline:3px solid #284926;outline-offset:-3px}
.snakes-controls{padding:21px;border:1px solid #c5d5b5;border-radius:23px;background:linear-gradient(150deg,#fffcf0,#f4f7e9);box-shadow:0 8px 24px #294a2a0e;display:grid;gap:15px;min-width:0;align-content:start}
.snakes-controls.my-turn{border-color:#a5ad57;box-shadow:0 0 0 2px #b9c06b33,0 8px 24px #59692f16}
.snakes-turn-prompt{font-size:18px;font-weight:780;line-height:1.4;text-align:center;overflow-wrap:anywhere;min-height:25px}
.snakes-dice-tray.ludo-dice-tray{background:radial-gradient(ellipse at 50% 18%,#ffffff,#e6ecd5);border-color:#d8dfc4;border-radius:17px;padding:12px}
.snakes-roll-button,.snakes-die-display{display:grid;justify-items:center;align-content:center;gap:12px;width:100%;min-height:130px;padding:4px;border:0;background:transparent;color:#2f4e38;min-width:0}
.snakes-roll-button:disabled{opacity:1;cursor:default}.snakes-roll-button.ready{cursor:pointer;border-radius:12px;background:#f8ffdf88;box-shadow:0 0 0 2px #9bad6c80}
.snakes-roll-button.ready:hover{background:#f6ffd4}
.snakes-controls .ludo-die-visual{width:75px;height:75px}
.snakes-roll-caption{font-size:13px;font-weight:650;line-height:1.35;text-align:center;overflow-wrap:anywhere}.snakes-roll-button.ready .snakes-roll-caption{font-size:16px;font-weight:750}
.snakes-roster{display:grid;gap:7px}
.snakes-player{display:flex;align-items:center;gap:9px;padding:8px 9px;border:1px solid #dce3cc;border-radius:11px;background:#fffef780;min-width:0}
.snakes-player.active{background:var(--snakes-light);border-color:var(--snakes-color)}
.snakes-player.you{box-shadow:inset 3px 0 0 var(--snakes-color)}
.snakes-start-slot{display:grid;place-items:center;width:27px;height:27px;flex-shrink:0}
.snakes-player-dot{display:block;width:17px;height:17px;border:1.5px solid var(--snakes-dark);background:var(--snakes-color);border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 2px #fff4}
.snakes-player-name{flex:1;min-width:0}.snakes-player-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:680;line-height:1.3}
.snakes-player-name small{display:block;font-size:10px;line-height:1.25;color:#5b6e53;margin-top:2px}
.snakes-player>b{font-size:15px;font-variant-numeric:tabular-nums;font-weight:750;flex-shrink:0}
.snakes-player>b:not(:first-child){max-width:42px}
.snakes-enlarge{width:100%;justify-content:space-between;min-height:44px!important;padding:10px 11px!important;font-size:12px!important;gap:8px}
.snakes-enlarge>span{font-size:20px;line-height:1}
.snakes-contest p{font-size:12px;font-weight:650;margin:0 0 7px}.snakes-contest>div{display:flex;gap:6px;flex-wrap:wrap}.snakes-contest>div>span{display:flex;align-items:center;gap:9px;padding:6px 9px;background:#edf1da;border-radius:8px;font-size:12px}.snakes-contest b{font-size:20px}
.snakes-score-list{display:grid;gap:8px;margin:16px 0}
.snakes-score-row{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #d5dfc6;border-radius:12px;background:#f9fbef}
.snakes-score-row>div{flex:1;min-width:0}.snakes-score-row strong{font-size:14px;overflow-wrap:anywhere}.snakes-score-row small{display:block;font-size:11px;color:#65795d;margin-top:3px}.snakes-score-row>b{font-size:24px;white-space:nowrap}.snakes-score-row>b>small{display:inline;font-size:10px;font-weight:500}
.snakes-result{padding:24px;background:linear-gradient(140deg,#fff5c4,#e5f0cf);border:1px solid #bccd98;border-radius:23px;text-align:center;min-width:0}
.snakes-result-star{color:#c79425;font-size:46px;line-height:1;display:block;margin-bottom:12px}.snakes-result h2{font-size:clamp(26px,3vw,36px);overflow-wrap:anywhere}.snakes-result .snakes-score-list{text-align:left}.snakes-result>.btn{min-height:46px;width:100%;margin-top:10px}
.snakes-waiting-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:21px 0}.snakes-waiting-seat{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid #d5dfc3;border-radius:12px;background:#f7fbed;min-width:0}.snakes-waiting-seat>div{flex:1;min-width:0}.snakes-waiting-seat strong{font-size:14px;overflow-wrap:anywhere}.snakes-waiting-seat small{display:block;margin-top:3px;font-size:11px;color:#62765a}
.snakes-options>summary{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:700;cursor:pointer}.snakes-options .option-list{margin-top:8px}.snakes-dependent-option{padding-left:14px}.snakes-dependent-option:has(input:disabled){opacity:.6}
.snakes-stack-details{display:grid;gap:17px}.snakes-expanded-square{padding:18px;border:1px solid #c6d7b5;border-radius:16px;background:#fafbec}.snakes-expanded-square h3{font-size:19px}.snakes-expanded-square>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px;margin:22px 0 4px}.snakes-expanded-player{display:grid;justify-items:center;align-content:start;gap:10px;min-width:0}.snakes-expanded-coin{width:44px;height:44px}.snakes-expanded-player strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere;text-align:center}.snakes-expanded-square>.hint{margin-top:15px}
.snakes-moving-coin{position:fixed;left:0;top:0;pointer-events:none;will-change:transform;z-index:2}.snakes-moving-coin>.snakes-coin{width:100%;height:100%}
.snakes-tile .game-tile-art{background:radial-gradient(ellipse at 45% 20%,#f3f0c5,#c6dfad)}
.snakes-tile-board{position:absolute;left:50%;top:50%;width:192px;height:192px;transform:translate(-50%,-50%) rotate(-8deg);border:4px solid #527347;border-radius:10px;background:#e9efc3;box-shadow:0 5px 0 #b0c28a,0 13px 24px #27472b30;overflow:hidden}
.snakes-tile-grid{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 18px,#fff9 18px,#fff9 19px),repeating-linear-gradient(90deg,transparent 0,transparent 18px,#fff9 18px,#fff9 19px),repeating-conic-gradient(#f3e6b6 0 25%,#cde4bc 0 50%) 0 0/38px 38px}
.snakes-tile-coin{position:absolute;left:25%;bottom:11%;width:20px;height:20px;z-index:3}.snakes-tile-coin:last-child{left:auto;right:22%;bottom:45%}
.snake-ladder-mode.turn-pulse .snakes-board-stage.snakes-your-turn{animation:snakes-board-breathe 2.4s ease-in-out 3.5 forwards}
@keyframes snakes-board-breathe{0%,100%{box-shadow:inset 0 0 0 2px #c4d77588,0 0 0 2px #b9c66c44,0 10px 30px #365b2920}50%{box-shadow:inset 0 0 0 4px #e4de8cc9,0 0 0 4px #a3bc6e99,0 10px 32px #7c96344a}}
.snakes-audience{max-width:1390px;margin:auto;grid-template-columns:minmax(0,1fr) minmax(270px,340px);gap:26px}.snakes-audience .snakes-board{max-width:min(710px,calc(100dvh - 210px))}.snakes-audience .snakes-turn-prompt{font-size:23px}.snakes-audience .snakes-player-name strong{font-size:16px}.snakes-audience .snakes-player-name small{font-size:12px}.snakes-audience .snakes-player>b{font-size:18px}.snakes-audience .ludo-die-visual{width:90px;height:90px}
@media(max-width:760px){
 .snakes-layout,.snakes-audience{grid-template-columns:1fr;gap:12px}.snakes-board-stage{padding:10px;border-radius:20px}.snakes-board,.snakes-audience .snakes-board{max-width:520px;border-width:2px;border-radius:8px}.snakes-number{font-size:12px;left:2px;top:2px;padding:0 1px}.snakes-square-coins{inset:14px 2px 2px;gap:1px}.snakes-controls{padding:14px;gap:11px;border-radius:18px}.snakes-turn-prompt,.snakes-audience .snakes-turn-prompt{font-size:16px;min-height:22px}.snakes-dice-tray.ludo-dice-tray{padding:7px}.snakes-roll-button,.snakes-die-display{display:flex;align-items:center;justify-content:center;gap:20px;min-height:72px;padding:4px}.snakes-controls .ludo-die-visual,.snakes-audience .ludo-die-visual{width:58px;height:58px;flex-shrink:0}.snakes-roll-caption{font-size:12px;max-width:160px}.snakes-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.snakes-player{padding:7px;gap:6px}.snakes-player-name strong,.snakes-audience .snakes-player-name strong{font-size:12px}.snakes-player-name small,.snakes-audience .snakes-player-name small{font-size:10px}.snakes-player>b,.snakes-audience .snakes-player>b{font-size:13px}.snakes-start-slot{width:23px;height:23px}.snakes-start-slot .snakes-coin{width:22px;height:22px}.snakes-player-dot{width:15px;height:15px}.snakes-result{padding:19px}.snakes-score-list{grid-template-columns:repeat(2,minmax(0,1fr))}.snakes-score-row{padding:9px;gap:7px}.snakes-score-row strong{font-size:12px}.snakes-score-row>b{font-size:18px}.snakes-score-row>b>small{display:none}
}
@media(max-width:360px){.snakes-number{font-size:10px}.snakes-square-coins{inset:12px 1px 2px}.snakes-board-stage{padding:8px}.snakes-controls{padding:11px}.snakes-player{padding:6px;gap:5px}.snakes-player-name strong{font-size:11px}.snakes-player-name small{font-size:9px}.snakes-player>b{font-size:12px}.snakes-start-slot{width:20px}.snakes-start-slot .snakes-coin{width:19px;height:19px}.snakes-waiting-seats{grid-template-columns:1fr}.snakes-expanded-square{padding:14px}.snakes-expanded-square>div{gap:17px 9px}.snakes-expanded-player strong{font-size:12px}.snakes-score-list{grid-template-columns:1fr}}
@media(orientation:landscape) and (min-width:568px) and (max-height:650px){
 .snake-ladder-mode .main-container.game-container{padding:5px 7px max(7px,env(safe-area-inset-bottom))}.snakes-layout,.snakes-audience{grid-template-columns:minmax(0,1fr) minmax(184px,33%);gap:9px;max-width:none;align-items:start}.snakes-board-stage{padding:8px;border-radius:15px}.snakes-board,.snakes-audience .snakes-board{max-width:clamp(212px,calc(100dvh - 105px),540px);border-width:1px;border-radius:6px}.snakes-number{font-size:clamp(8px,2.25dvh,13px);top:1px;left:1px;padding:0 1px}.snakes-square-coins{inset:10px 1px 1px;gap:1px}.snakes-controls{padding:10px;gap:9px;border-radius:15px;max-height:calc(100dvh - 87px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.snakes-turn-prompt,.snakes-audience .snakes-turn-prompt{font-size:14px;min-height:19px}.snakes-dice-tray.ludo-dice-tray{padding:5px}.snakes-roll-button,.snakes-die-display{display:flex;justify-content:center;align-items:center;gap:12px;min-height:59px}.snakes-controls .ludo-die-visual,.snakes-audience .ludo-die-visual{width:48px;height:48px}.snakes-roll-caption,.snakes-roll-button.ready .snakes-roll-caption{font-size:12px}.snakes-roster{grid-template-columns:1fr;gap:5px}.snakes-player{padding:5px 7px;gap:7px}.snakes-player-name strong,.snakes-audience .snakes-player-name strong{font-size:12px}.snakes-player-name small,.snakes-audience .snakes-player-name small{font-size:9px}.snakes-player>b,.snakes-audience .snakes-player>b{font-size:13px}.snakes-start-slot{width:20px;height:20px}.snakes-start-slot .snakes-coin{width:19px;height:19px}.snakes-player-dot{width:13px;height:13px}.snakes-enlarge{font-size:11px!important}.snakes-result{padding:14px;max-height:calc(100dvh - 87px);overflow-y:auto}.snakes-result h2{font-size:24px}.snakes-result-star{font-size:30px;margin-bottom:8px}.snakes-score-list{grid-template-columns:1fr;gap:6px}.snakes-score-row{padding:7px}.snakes-score-row strong{font-size:12px}.snakes-score-row small{font-size:9px}.snakes-score-row>b{font-size:18px}.snakes-contest p{font-size:11px}.snakes-contest>div>span{padding:4px 6px;font-size:10px}.snakes-contest b{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.snake-ladder-mode.turn-pulse .snakes-board-stage.snakes-your-turn{animation:none}}
.animations-off.snake-ladder-mode .snakes-board-stage.snakes-your-turn{animation:none}

.snakes-options .snakes-capture-mode{margin:2px 0 10px;padding-left:14px;gap:7px}.snakes-capture-mode select{font-size:16px}.snakes-capture-mode .hint{font-size:12px;font-weight:400}
/* A wide, short screen gives the board its square width and uses the rest for all players. */
@media(orientation:landscape) and (min-width:568px) and (max-height:650px){
 .snakes-layout,.snakes-audience{grid-template-columns:clamp(230px,calc(100dvh - 87px),558px) minmax(0,1fr)}
 .snakes-controls .snakes-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .snakes-controls .snakes-player{padding:4px 6px;gap:6px}
 .snakes-controls .snakes-player-name strong{font-size:12px}
 .snakes-controls .snakes-player-name small{font-size:9px;margin-top:1px}
 .snakes-controls .snakes-player>b{font-size:12px}
 .snakes-controls .snakes-turn-prompt{font-size:13px}
}

/* Whose turn it is, and the last roll with who rolled it. */
.snakes-turn-banner{display:flex;align-items:center;gap:12px;padding:11px 14px;border:2px solid var(--snakes-color);border-radius:16px;background:var(--snakes-light);min-width:0}
.snakes-turn-banner.mine{box-shadow:0 0 0 4px color-mix(in srgb,var(--snakes-color) 28%,transparent);animation:snakes-banner-glow 1.8s ease-in-out 3.5 forwards}
@keyframes snakes-banner-glow{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--snakes-color) 16%,transparent)}}
.snakes-banner-coin{width:32px;height:32px;flex:none}
.snakes-turn-text{display:grid;min-width:0}
.snakes-turn-text strong{font-size:19px;line-height:1.2;font-weight:800;color:#1f3a2c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.snakes-turn-text small{font-size:14px;font-weight:650;color:#3d5a45}
.snakes-last-roll{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #d6dfc5;border-left:5px solid var(--snakes-color,#9aab86);border-radius:12px;background:#fffef6;min-width:0}
.snakes-last-roll.empty{justify-content:center;color:#62745a;font-size:13px}
.snakes-last-roll-text{display:grid;min-width:0}
.snakes-last-roll-text strong{font-size:15px;font-weight:720;color:#23402f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.snakes-last-roll-text b{font-size:19px;color:var(--snakes-dark,#23402f)}
.snakes-last-roll-text small{font-size:12.5px;color:#4e6450;line-height:1.3}
.snakes-turn-tag{flex:none;margin-left:4px;padding:2px 7px;border-radius:99px;background:var(--snakes-color);color:#fff;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
/* Coins stay readable on small boards and the active coin is ringed. */
.snakes-board .snakes-square-coins{inset:26% 3% 3%;gap:1px}
.snakes-board .snakes-coin-slot .snakes-coin{width:94cqmin;height:94cqmin;min-width:10px;min-height:10px;max-width:30px;max-height:30px}
.snakes-coin.snakes-coin-active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--snakes-color),0 2px 5px #17372c55;animation:snakes-coin-pulse 1.4s ease-in-out infinite;z-index:1}
@keyframes snakes-coin-pulse{50%{box-shadow:0 0 0 2px #fff,0 0 0 7px color-mix(in srgb,var(--snakes-color) 55%,transparent),0 2px 5px #17372c55}}
body.animations-off .snakes-coin.snakes-coin-active,body.animations-off .snakes-turn-banner.mine{animation:none}
@media (prefers-reduced-motion:reduce){.snakes-coin.snakes-coin-active,.snakes-turn-banner.mine{animation:none}}
@media (max-width:560px){.snakes-turn-banner{padding:8px 11px}.snakes-turn-text strong{font-size:17px}.snakes-last-roll{padding:7px 10px}}

/* Your coin is the control, and a slim strip replaces the side panel. */
.snakes-coin-tap,.snakes-landing-tap{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;background:transparent;border-radius:3px;z-index:9}
.snakes-coin-tap:focus-visible,.snakes-landing-tap:focus-visible{outline:2px solid #193f28;outline-offset:-2px}
.snakes-start-slot{position:relative}
.snakes-coin-tap.at-start{inset:-6px;width:auto;height:auto;border-radius:50%}
.snakes-square.snakes-mine{box-shadow:inset 0 0 0 2px var(--snakes-dark,#1d4a2e)}
.snakes-your-turn .snakes-square.snakes-mine .snakes-coin,.snakes-start-slot:has(.snakes-coin-tap) .snakes-coin{animation:snakes-tap-me 1.3s ease-in-out infinite}
@keyframes snakes-tap-me{0%,100%{transform:scale(1);box-shadow:0 0 0 2px #fffbe0,0 0 0 4px var(--snakes-dark)}50%{transform:scale(1.12);box-shadow:0 0 0 3px #fffbe0,0 0 0 7px color-mix(in srgb,var(--snakes-color) 55%,transparent)}}
.snakes-square.snakes-landing{box-shadow:inset 0 0 0 3px #1f4a2f;background:#fff3a8!important;z-index:3}
.snakes-landing-tap{display:grid;place-items:center;border:2px dashed #1f4a2f;background:#fff8c8b3}
.snakes-landing-tap .snakes-ghost{animation:snakes-spot 1.2s ease-in-out infinite}
.snakes-ghost{display:block;height:62%;width:auto;aspect-ratio:1;border-radius:50%;background:var(--snakes-color);opacity:.55;border:2px solid var(--snakes-dark);box-shadow:0 0 0 3px #fffbe0}
@keyframes snakes-spot{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.snakes-bar{padding:10px 12px;gap:8px}
.snakes-bar-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}
.snakes-bar .snakes-dice-tray.ludo-dice-tray{padding:3px;border-radius:14px}
.snakes-bar .snakes-roll-button,.snakes-bar .snakes-die-display{display:grid;justify-items:center;min-height:0;width:auto;padding:4px 8px;gap:2px}
.snakes-bar .ludo-die-visual{width:54px;height:54px}
.snakes-bar .snakes-roll-caption{font-size:12px}
.snakes-bar-text{display:grid;gap:6px;min-width:0}
.snakes-bar .snakes-turn-banner{padding:6px 10px;gap:8px}
.snakes-bar .snakes-turn-banner .snakes-banner-coin{width:22px;height:22px}
.snakes-bar .snakes-turn-text strong{font-size:15px}
.snakes-bar .snakes-turn-text small{font-size:12px}
.snakes-bar .snakes-last-roll{padding:5px 9px}
.snakes-bar .snakes-last-roll strong{font-size:13px}
.snakes-bar .snakes-last-roll small{font-size:11.5px}
.snakes-bar .snakes-roster{display:flex;flex-wrap:wrap;gap:6px}
.snakes-bar .snakes-player{flex:1 1 118px;padding:5px 8px;gap:6px}
.snakes-bar .snakes-player-name small{display:none}
.snakes-bar .snakes-player-name strong{font-size:12px}
.snakes-bar .snakes-player>b{font-size:13px}
.snakes-bar .snakes-turn-tag{display:none}
.snakes-audience .snakes-bar .ludo-die-visual{width:78px;height:78px}
@media(prefers-reduced-motion:reduce){.snakes-your-turn .snakes-square.snakes-mine .snakes-coin,.snakes-start-slot:has(.snakes-coin-tap) .snakes-coin,.snakes-landing-tap .snakes-ghost{animation:none}}
.animations-off .snakes-square.snakes-mine .snakes-coin,.animations-off .snakes-start-slot .snakes-coin,.animations-off .snakes-landing-tap .snakes-ghost{animation:none}
.snakes-player-name{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:6px;align-items:center}
.snakes-player-name .gh-face{--face:26px;grid-row:span 2}
.snakes-audience .snakes-player-name .gh-face{--face:34px}

/* Pawns (owner request, 2026-10-04): bright colours, each pawn outlined in
   white and near-black with a shadow, so it stands out from the pastel
   squares, the snakes and the ladders. A single pawn sits low and right in
   its square, clear of the square number. */
.snakes-color-0{--snakes-color:#ff4a2a;--snakes-dark:#a11c06}
.snakes-color-1{--snakes-color:#00bfae;--snakes-dark:#006b61}
.snakes-color-2{--snakes-color:#ffcb1f;--snakes-dark:#9b6b00}
.snakes-color-3{--snakes-color:#2f6bff;--snakes-dark:#1235a3}
.snakes-color-4{--snakes-color:#9c4dff;--snakes-dark:#5518a8}
.snakes-color-5{--snakes-color:#ff3d9a;--snakes-dark:#a3114f}
.snakes-coin,.snakes-expanded-coin,.snakes-tile-coin{border:0;border-radius:0;background:none;box-shadow:none}
.snakes-coin:after,.snakes-expanded-coin:after,.snakes-tile-coin:after{content:none}
.snakes-coin-slot .snakes-coin,.snakes-square.crowded .snakes-coin{border:0;box-shadow:none}
.snakes-pawn{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 1.5px 1.2px #000a)}
.snakes-pawn-edge{fill:#14201a;stroke:#14201a;stroke-width:5.6;stroke-linejoin:round}
.snakes-pawn-body{fill:var(--snakes-color);stroke:#fff;stroke-width:3;stroke-linejoin:round;paint-order:stroke}
.snakes-pawn-base{fill:var(--snakes-dark);opacity:.42}
.snakes-pawn-shine{fill:#fff;opacity:.75}
.snakes-board .snakes-square-coins{inset:18% 2% 2% 18%}
.snakes-board .snakes-square.crowded .snakes-square-coins{inset:30% 2% 2% 2%}
.snakes-board .snakes-coin-slot .snakes-coin{width:98cqmin;height:98cqmin;min-width:10px;min-height:10px;max-width:46px;max-height:46px}
.snakes-coin.snakes-coin-active{box-shadow:none;animation:snakes-pawn-bob 1.4s ease-in-out infinite;z-index:1}
.snakes-coin.snakes-coin-active .snakes-pawn{filter:drop-shadow(0 0 1.5px #fff) drop-shadow(0 0 3px var(--snakes-color)) drop-shadow(0 1.5px 1.2px #000a)}
@keyframes snakes-pawn-bob{50%{transform:translateY(-10%)}}
@keyframes snakes-tap-me{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
body.animations-off .snakes-coin.snakes-coin-active{animation:none}
@media (prefers-reduced-motion:reduce){.snakes-coin.snakes-coin-active{animation:none}}

/* The host's board choice before the first roll. */
.snakes-board-choice{display:grid;gap:10px;padding:12px 14px;border:1px solid #c6d7b5;border-radius:14px;background:#fffbe6}
.snakes-board-choice.host{border-color:#e2bd52;background:#fff4c9;box-shadow:0 0 0 3px #f3cf7b55}
.snakes-board-choice p{margin:0;display:grid;gap:2px}.snakes-board-choice strong{font-size:15px}.snakes-board-choice small{font-size:12px;color:var(--muted)}
.snakes-board-choice-actions{display:flex;flex-wrap:wrap;gap:8px}.snakes-board-choice-actions .btn{flex:1 1 140px;min-height:44px}
.snakes-board .snakes-illustration{animation:snakes-board-in .45s ease-out}
@keyframes snakes-board-in{from{opacity:0}to{opacity:1}}
body.animations-off .snakes-board .snakes-illustration{animation:none}
@media (prefers-reduced-motion:reduce){.snakes-board .snakes-illustration{animation:none}}
.snakes-controls.choosing-board .snakes-bar-main{display:none}
