/* Ludo keeps canonical board coordinates while rotating its presentation per viewer. */
.ludo-color-0{--ludo-color:#d84a48;--ludo-light:#ffe2db;--ludo-dark:#8c242c}
.ludo-color-1{--ludo-color:#299870;--ludo-light:#d5f2df;--ludo-dark:#166349}
.ludo-color-2{--ludo-color:#edbc35;--ludo-light:#fff1b4;--ludo-dark:#967115}
.ludo-color-3{--ludo-color:#4186ce;--ludo-light:#dcecff;--ludo-dark:#285896}
.ludo-mode{background:radial-gradient(ellipse at 80% 5%,#f7dc7355,transparent 50%),#edf3ef}
.ludo-mode.audience-mode{background:radial-gradient(ellipse at 40% 0,#315245,#162b29 75%)}
.ludo-mode .main-container.game-container{max-width:1330px;padding-bottom:24px}
.ludo-mode .table-main{display:block!important;min-width:0}
.ludo-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(225px,300px);gap:24px;align-items:center;color:#263b33;width:100%;min-width:0}
.ludo-board-stage{padding:15px;background:linear-gradient(145deg,#fffefa,#e8ebdd);border:1px solid #d8decd;border-radius:26px;box-shadow:inset 0 1px 0 #fff,0 16px 40px #214a3318;min-width:0;width:100%}
.ludo-board{display:grid;grid-template-columns:repeat(6,minmax(0,.75fr)) repeat(3,minmax(0,1.5fr)) repeat(6,minmax(0,.75fr));grid-template-rows:repeat(6,minmax(0,.75fr)) repeat(3,minmax(0,1.5fr)) repeat(6,minmax(0,.75fr));aspect-ratio:1;position:relative;width:100%;max-width:650px;margin:auto;border:2px solid #3a5149;border-radius:10px;background:#fffef5;overflow:hidden;box-shadow:0 3px 0 #bbc9b7,0 8px 12px #1d453314;isolation:isolate}
.ludo-cell{min-width:0;min-height:0;position:relative;width:100%;height:100%}
.ludo-cell.track,.ludo-cell.home-column{border-right:1px solid #819083;border-bottom:1px solid #819083;background:#fffcf2}
.ludo-cell.home-column,.ludo-cell.start-square{background:var(--ludo-color);color:#fffdf0}
.ludo-safe-star{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(9px,1.8vw,25px);color:#778477;line-height:1;opacity:.8;pointer-events:none}
.ludo-cell.start-square .ludo-safe-star{color:white;font-size:clamp(9px,1.6vw,22px)}
.ludo-cell.start-square.ludo-color-0 .ludo-safe-star{transform:rotate(var(--board-turn))}.ludo-cell.start-square.ludo-color-1 .ludo-safe-star{transform:rotate(calc(var(--board-turn) + 90deg))}.ludo-cell.start-square.ludo-color-2 .ludo-safe-star{transform:rotate(calc(var(--board-turn) + 180deg))}.ludo-cell.start-square.ludo-color-3 .ludo-safe-star{transform:rotate(calc(var(--board-turn) + 270deg))}
.ludo-yard{position:absolute;left:var(--yard-left);top:var(--yard-top);width:33.333333%;height:33.333333%;background:linear-gradient(145deg,#ffffff25,transparent 60%),var(--ludo-color);border:1px solid #5268516e;z-index:2;overflow:hidden}
.ludo-yard-ring{position:absolute;inset:30% 12% 9%;border:2px solid #ffffff9e;border-radius:20%;background:#fffef4;box-shadow:0 3px 9px #1843271a,inset 0 0 0 5px var(--ludo-light);pointer-events:none}
.ludo-yard-name{position:absolute;top:3.5%;left:7%;right:7%;text-align:center;min-width:0;color:white;line-height:1.1;text-shadow:0 1px 1px #133e1c33}
.ludo-yard-name strong{font-size:clamp(11px,1.4vw,20px);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800;line-height:1.25}
.ludo-yard-name>span{font-size:clamp(8px,.8vw,12px);display:block;line-height:1.2;margin-top:2px}
.ludo-yard.ludo-color-2 .ludo-yard-name{color:#594517;text-shadow:none}
.ludo-yard.active:after{content:"";position:absolute;inset:3px;border:3px solid #fff6bc;box-shadow:inset 0 0 0 2px #40524266;border-radius:4px;pointer-events:none}
.ludo-yard.you .ludo-yard-name strong:before{content:"●";font-size:.7em;margin-right:5px;vertical-align:middle}
.ludo-yard.unused{filter:saturate(.6);opacity:.82}.ludo-unused-label{position:absolute;left:0;right:0;top:6%;text-align:center;font-size:13px;font-weight:750;color:#fff8e7}.ludo-yard.ludo-color-2 .ludo-unused-label{color:#6e5419}
.ludo-yard-slot,.ludo-home-slot{position:absolute;left:var(--piece-x);top:var(--piece-y);width:7.5%;height:7.5%;transform:translate(-50%,-50%);display:grid;place-items:center;z-index:4;pointer-events:none}
.ludo-yard-token{background:transparent;border:0;min-width:0;min-height:0;width:100%;height:100%;padding:0;display:grid;place-items:center;border-radius:50%;pointer-events:auto;touch-action:manipulation}
.ludo-yard-token:disabled{opacity:1;cursor:default}.ludo-yard-token.available{outline:2px solid var(--ludo-dark,#45643c);outline-offset:2px;background:#ffffff6b}.ludo-yard-token.selected{outline:3px solid #244e38;outline-offset:3px;background:#fff9b9}
.ludo-yard-token:focus-visible{outline:3px solid #142a1e;outline-offset:3px}
.ludo-yard-empty{width:70%;height:70%;border:2px dashed #9dad8b77;border-radius:50%;background:#e9efdf80}
.ludo-token{display:inline-grid;place-items:center;width:32px;height:32px;border:2px solid var(--ludo-dark);border-radius:50%;background:radial-gradient(circle at 30% 15%,#ffffff8c,transparent 60%),var(--ludo-color);box-shadow:0 3px 0 var(--ludo-dark),0 4px 5px #20432435,inset 0 0 0 2px #fff9d944;position:relative;flex-shrink:0;color:white}
.ludo-token>b{font-size:17px;font-weight:850;line-height:1;text-shadow:0 1px 1px #1a32134f}
.ludo-token.ludo-color-2{color:#513b0b}.ludo-token.ludo-color-2>b{text-shadow:none}
.ludo-yard-slot .ludo-token{width:78%;height:78%;font-size:inherit}.ludo-yard-slot .ludo-token>b{font-size:clamp(13px,1.8vw,26px)}
.ludo-track-pieces{position:absolute;inset:1px;display:grid;grid-template-columns:repeat(var(--coin-cols),minmax(0,1fr));grid-template-rows:repeat(var(--coin-rows),minmax(0,1fr));gap:1px;z-index:5;pointer-events:none}
.ludo-coin-slot{display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%;container-type:size}
.ludo-coin-slot .ludo-token{width:95cqmin;height:95cqmin;max-width:100%;max-height:100%;border-width:.75px;box-shadow:0 .7px 0 var(--ludo-dark),inset 0 0 0 .7px #ffffff55}
.ludo-token:after{content:"";position:absolute;inset:18%;border-radius:50%;border:1px solid #ffffff55;pointer-events:none}
.ludo-token.selected{outline:2px solid #153b25;outline-offset:1px;box-shadow:0 0 0 3px #fff6b2;z-index:7}
.ludo-center{position:absolute;left:33.333333%;top:33.333333%;width:33.333333%;height:33.333333%;z-index:3;pointer-events:none;overflow:hidden;border:1px solid #52685180}
.ludo-center>span{position:absolute;inset:0;background:conic-gradient(from -45deg,#299870 0 90deg,#edbc35 90deg 180deg,#4186ce 180deg 270deg,#d84a48 270deg 360deg);transform:rotate(var(--board-turn))}
.ludo-center:after{content:"";position:absolute;inset:42%;background:#fff8df;border-radius:50%;box-shadow:0 1px 3px #253c2644}
.ludo-home-slot{width:3.2%;height:3.2%;z-index:5}.ludo-home-slot .ludo-token{width:100%;height:100%;border-width:1px;box-shadow:0 1px 0 var(--ludo-dark)}.ludo-home-slot .ludo-token>b{font-size:clamp(6px,.7vw,10px)}
.ludo-cell.destination{box-shadow:inset 0 0 0 2px #163f24;background:#f3e896!important;z-index:7}
.ludo-destination-tap{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;background:#fbf0a38f;border:2px solid #244e2a;border-radius:2px;color:#173e27;padding:0;font-size:clamp(14px,2vw,26px);line-height:1;z-index:8}
.ludo-home-destination{position:absolute;left:42%;top:42%;width:16%;height:16%;min-height:0;min-width:0;display:grid;place-items:center;background:#fff2a9bd;border:3px solid #214f31;border-radius:50%;z-index:8;color:#164329;font-size:32px;padding:0}
.ludo-controls{padding:24px 20px;border:1px solid #d5dfcc;border-radius:23px;background:#fffcf4;box-shadow:0 10px 30px #2449320e;display:grid;gap:17px;min-width:0;align-content:start}
.ludo-controls.my-turn{border-color:#6b9976;box-shadow:0 0 0 2px #729c7122,0 8px 25px #27483212}
.ludo-turn-prompt{font-size:17px;line-height:1.4;text-align:center;font-weight:780;overflow-wrap:anywhere;min-height:24px}
.ludo-dice-tray{padding:12px;border:1px solid #e0e2d1;border-radius:19px;background:radial-gradient(ellipse at 45% 20%,#ffffff,#e8ebdf);box-shadow:inset 0 3px 8px #3452350b}
.ludo-roll-button,.ludo-die-display{display:grid;justify-items:center;align-content:center;gap:15px;width:100%;min-height:128px;padding:4px;border:0;background:transparent;color:#374d3c;min-width:0}
.ludo-roll-button:disabled{opacity:1;cursor:default}.ludo-roll-button.ready{cursor:pointer}.ludo-roll-button.ready .ludo-die-visual{box-shadow:0 0 0 4px #8ba46f55,0 5px 0 #b4bfa6,0 9px 15px #253d2926}
.ludo-die-visual{display:block;width:72px;height:72px;border-radius:16px;box-shadow:0 5px 0 #bec5b0,0 9px 15px #253d2926;transform:rotate(-5deg)}
.ludo-die-face{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:9%;width:100%;height:100%;padding:15%;border:1px solid #d6dac8;border-radius:22%;background:linear-gradient(135deg,#ffffff,#f2f1df);box-shadow:inset 1px 2px 0 white,inset -2px -3px 5px #b1bba030}
.ludo-die-face>i{display:block;aspect-ratio:1;border-radius:50%;background:#263e34;box-shadow:inset 0 2px 2px #14282091,0 1px 0 white;visibility:hidden}.ludo-die-face>i.visible{visibility:visible}
.ludo-roll-caption{font-size:12px;font-weight:650;line-height:1.35;text-align:center;overflow-wrap:anywhere}.ludo-roll-button.ready .ludo-roll-caption{font-size:15px;color:#244e31}.ludo-dice-tray.rolling .ludo-die-visual{visibility:hidden}
.ludo-token-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.ludo-token-choice{min-width:44px;min-height:74px;padding:8px 3px;display:grid;justify-items:center;align-content:center;gap:7px;border:1px solid #c8d5bf;border-radius:13px;background:var(--ludo-light);color:var(--ludo-dark);position:relative}
.ludo-token-choice:disabled{opacity:.4;filter:saturate(.5)}.ludo-choice-token{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--ludo-dark);background:var(--ludo-color);color:white;font-size:20px;font-weight:850;box-shadow:0 2px 0 var(--ludo-dark),inset 0 0 0 2px #ffffff36}
.ludo-token-choice.ludo-color-2 .ludo-choice-token{color:#563f0c}.ludo-token-choice>span:last-of-type{font-size:9px;text-align:center;line-height:1.25}.ludo-token-choice.selected{outline:2px solid #355d3e;outline-offset:2px;background:#f3f2c6}.ludo-token-choice>i{position:absolute;right:-3px;top:-6px;background:#285637;color:#fffbe7;border-radius:50%;width:17px;height:17px;display:grid;place-items:center;font-size:11px;font-style:normal}
.ludo-move-button{min-height:47px;width:100%;font-size:14px;padding:11px 8px}
.ludo-progress-strip{display:grid;gap:7px;border-top:1px solid #e1e5d7;padding-top:12px}.ludo-progress-strip>span{display:flex;align-items:center;gap:7px;font-size:12px;min-width:0}.ludo-progress-strip i{width:8px;height:8px;border-radius:50%;background:var(--ludo-color);flex-shrink:0}.ludo-progress-strip strong{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.ludo-progress-strip b{font-size:13px;font-variant-numeric:tabular-nums}.ludo-capture-note{font-size:11px;color:#5b745a;line-height:1.4}
.ludo-contest{display:grid;gap:7px}.ludo-contest>span{font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.06em;color:#6a7d65}.ludo-contest>div{display:flex;flex-wrap:wrap;gap:6px}.ludo-contest>div>span{display:flex;align-items:center;gap:8px;border-radius:8px;background:#edf1e4;padding:6px 9px;font-size:11px}.ludo-contest b{font-size:18px}
.ludo-score-list{display:grid;gap:9px;margin:17px 0}.ludo-score-row{display:flex;gap:9px;align-items:center;border:1px solid #dce2d1;border-radius:12px;padding:11px;background:#f7faef}.ludo-player-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--ludo-color);color:white;font-size:13px;font-weight:800;flex-shrink:0}.ludo-color-2 .ludo-player-mark{color:#604815}.ludo-score-row>div{flex:1;min-width:0}.ludo-score-row strong{font-size:13px;overflow-wrap:anywhere}.ludo-score-row small{display:block;font-size:11px;color:#657962;margin-top:4px}.ludo-score-row>b{font-size:24px;white-space:nowrap}.ludo-score-row>b>small{display:inline;font-size:10px;font-weight:500}
.ludo-result{background:linear-gradient(135deg,#fffbe4,#e9f1d8);border:1px solid #c6d6a4;padding:24px;border-radius:22px;text-align:center;min-width:0}.ludo-result-star{font-size:45px;color:#d1a028;display:block;margin-bottom:12px}.ludo-result h2{font-size:clamp(25px,3vw,36px);overflow-wrap:anywhere}.ludo-result .ludo-score-list{text-align:left}.ludo-result>.btn{min-height:46px}
.ludo-waiting-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.ludo-waiting-seat{display:flex;gap:10px;align-items:center;border:1px solid #d8dfcb;border-radius:13px;padding:13px 11px;background:#f8fbf2;min-width:0}.ludo-waiting-seat>div{flex:1;min-width:0}.ludo-waiting-seat strong{font-size:13px;overflow-wrap:anywhere}.ludo-waiting-seat small{display:block;font-size:11px;color:#6a7b61;margin-top:4px}.ludo-options>summary{font-weight:700;font-size:13px;min-height:44px;display:flex;align-items:center;cursor:pointer}.ludo-options .option-list{margin-top:8px}
.ludo-tile-board{position:absolute;left:50%;top:50%;width:183px;height:183px;background:#fff8e2;border:4px solid #536b5d;border-radius:12px;transform:translate(-55%,-50%) rotate(-9deg);box-shadow:0 5px 0 #859d86,0 12px 23px #34553925;overflow:hidden}
.ludo-tile-yard{position:absolute;width:40%;height:40%;background:var(--ludo-color);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.ludo-tile-yard:nth-child(1){left:0;top:0}.ludo-tile-yard:nth-child(2){right:0;top:0}.ludo-tile-yard:nth-child(3){right:0;bottom:0}.ludo-tile-yard:nth-child(4){left:0;bottom:0}.ludo-tile-yard>i{border-radius:50%;background:#fff4d9;box-shadow:inset 0 0 0 3px #ffffff91}.ludo-tile-cross{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 11px,#48675470 11px,#48675470 12px),repeating-linear-gradient(90deg,transparent 0,transparent 11px,#48675470 11px,#48675470 12px);clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%)}.ludo-tile-home{position:absolute;left:40%;top:40%;width:20%;height:20%;background:conic-gradient(from -45deg,#299870 0 90deg,#edbc35 90deg 180deg,#4186ce 180deg 270deg,#d84a48 270deg 360deg)}.ludo-tile-die{position:absolute;width:53px;height:53px;left:calc(50% + 57px);top:51%;transform:rotate(13deg);box-shadow:0 4px 0 #c1c8ae,0 9px 15px #2d4d2f33;border-radius:12px}
.ludo-motion-object{position:fixed;top:0;left:0;pointer-events:none;will-change:transform;z-index:1}.ludo-motion-object>.ludo-token{width:100%;height:100%}
.ludo-mode.turn-pulse .ludo-board-stage.ludo-your-turn{animation:ludo-board-breathe 2.3s ease-in-out 3.5 forwards}
@keyframes ludo-board-breathe{0%,100%{box-shadow:inset 0 0 0 2px #8aa97177,0 0 0 2px #6e9b6244,0 12px 30px #315c3417}50%{box-shadow:inset 0 0 0 4px #bdc56eaa,0 0 0 4px #87af6477,0 12px 30px #6d8b3d3b}}
.ludo-audience{max-width:1350px;margin:auto;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:28px}.ludo-audience .ludo-board{max-width:min(650px,calc(100dvh - 200px))}.ludo-audience .ludo-controls{padding:26px}.ludo-audience .ludo-turn-prompt{font-size:22px}.ludo-audience .ludo-die-visual{width:94px;height:94px}.ludo-audience .ludo-roll-caption{font-size:15px}.ludo-audience .ludo-progress-strip>span{font-size:15px}.ludo-audience .ludo-progress-strip b{font-size:18px}
@media(max-width:760px){
  .ludo-layout{grid-template-columns:1fr;gap:12px}.ludo-board-stage{padding:10px;border-radius:20px}.ludo-board{max-width:490px;border-width:1.5px;border-radius:7px}.ludo-controls{padding:15px;gap:12px;border-radius:18px}.ludo-turn-prompt{font-size:15px;min-height:21px}.ludo-dice-tray{padding:7px;border-radius:13px}.ludo-roll-button,.ludo-die-display{display:flex;justify-content:center;align-items:center;gap:19px;min-height:73px}.ludo-die-visual{width:57px;height:57px;border-radius:13px}.ludo-roll-caption{max-width:145px;font-size:12px}.ludo-token-choices{gap:9px}.ludo-token-choice{min-height:64px;padding:7px 5px;gap:5px}.ludo-choice-token{width:30px;height:30px;font-size:18px}.ludo-token-choice>span:last-of-type{font-size:10px}.ludo-progress-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 15px;padding-top:10px}.ludo-progress-strip>span{font-size:11px}.ludo-progress-strip b{font-size:12px}.ludo-yard-ring{border-width:1px;box-shadow:0 2px 3px #18432710,inset 0 0 0 3px var(--ludo-light)}.ludo-yard-name strong{font-size:12px}.ludo-yard-name>span{font-size:9px;margin-top:1px}.ludo-safe-star{font-size:12px}.ludo-cell.start-square .ludo-safe-star{font-size:12px}.ludo-track-stack .ludo-token>b{font-size:10px}.ludo-unused-label{font-size:12px}.ludo-audience .ludo-board{max-width:490px}.ludo-audience .ludo-controls{padding:15px}.ludo-audience .ludo-turn-prompt{font-size:17px}.ludo-audience .ludo-die-visual{width:62px;height:62px}.ludo-audience .ludo-roll-caption{font-size:12px}.ludo-audience .ludo-progress-strip>span{font-size:12px}.ludo-audience .ludo-progress-strip b{font-size:14px}
}
@media(max-width:370px){.ludo-board-stage{padding:8px}.ludo-yard-name strong{font-size:10px}.ludo-yard-name>span{font-size:8px}.ludo-yard-ring{inset:30% 10% 9%}.ludo-yard-slot .ludo-token>b{font-size:13px}.ludo-controls{padding:12px}.ludo-progress-strip{gap:7px 10px}.ludo-token-choices{gap:6px}.ludo-token-choice>span:last-of-type{font-size:9px}.ludo-waiting-seats{grid-template-columns:1fr}.ludo-result{padding:17px}.ludo-stack-count{font-size:7px;min-width:10px;height:10px}}
@media(orientation:landscape) and (min-width:568px) and (max-height:650px){
  .ludo-mode .main-container.game-container{padding:5px 7px max(7px,env(safe-area-inset-bottom))}
  .ludo-layout,.ludo-audience{grid-template-columns:minmax(0,1fr) minmax(183px,31%);align-items:start;gap:8px;max-width:none}
  .ludo-board-stage{padding:8px;border-radius:15px}.ludo-board,.ludo-audience .ludo-board{max-width:clamp(218px,calc(100dvh - 105px),530px);border-width:1px;border-radius:6px}
  .ludo-controls,.ludo-audience .ludo-controls{padding:10px;gap:9px;border-radius:14px;max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.ludo-turn-prompt,.ludo-audience .ludo-turn-prompt{font-size:13px;min-height:19px}.ludo-dice-tray{padding:6px}.ludo-roll-button,.ludo-die-display{display:flex;justify-content:center;align-items:center;gap:12px;min-height:62px}.ludo-die-visual,.ludo-audience .ludo-die-visual{width:48px;height:48px;flex-shrink:0}.ludo-roll-caption,.ludo-audience .ludo-roll-caption,.ludo-roll-button.ready .ludo-roll-caption{font-size:11px;max-width:100px}.ludo-token-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ludo-token-choice{display:flex;align-items:center;justify-content:center;min-height:44px;padding:5px 4px;gap:5px}.ludo-choice-token{width:26px;height:26px;font-size:16px;flex-shrink:0}.ludo-token-choice>span:last-of-type{font-size:9px}.ludo-move-button{min-height:44px;font-size:12px;padding:9px 7px}.ludo-progress-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;padding-top:8px}.ludo-progress-strip>span,.ludo-audience .ludo-progress-strip>span{font-size:9px;gap:4px}.ludo-progress-strip b,.ludo-audience .ludo-progress-strip b{font-size:10px}.ludo-progress-strip i{width:6px;height:6px}.ludo-yard-name strong{font-size:10px}.ludo-yard-name>span{font-size:8px;margin-top:0}.ludo-yard-ring{inset:30% 10% 9%;border-width:1px}.ludo-yard-slot .ludo-token{border-width:1px;box-shadow:0 2px 0 var(--ludo-dark)}.ludo-yard-slot .ludo-token>b{font-size:12px}.ludo-track-stack .ludo-token{border-width:1px}.ludo-track-stack .ludo-token>b{font-size:8px}.ludo-stack-count{min-width:9px;height:9px;font-size:6px;right:-2px;top:-3px}.ludo-safe-star,.ludo-cell.start-square .ludo-safe-star{font-size:10px}.ludo-unused-label{font-size:10px}.ludo-capture-note{font-size:10px}.ludo-result{padding:15px;max-height:calc(100dvh - 86px);overflow-y:auto}.ludo-result h2{font-size:23px}.ludo-result-star{font-size:31px;margin-bottom:8px}.ludo-score-row{padding:7px;gap:6px}.ludo-score-row strong{font-size:11px}.ludo-score-row small{font-size:9px}.ludo-score-row>b{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.ludo-mode.turn-pulse .ludo-board-stage.ludo-your-turn{animation:none}}

/* Every occupied square retains each individual coin; expansion changes only its visual size. */
.ludo-stack-inspect,.ludo-track-coin-button{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;border-radius:3px;background:transparent;z-index:8}
.ludo-stack-inspect{box-shadow:inset 0 0 0 .75px #37573b99}
.ludo-stack-inspect:focus-visible,.ludo-track-coin-button:focus-visible{outline:2px solid #193f28;outline-offset:-2px}
.ludo-cell.destination .ludo-stack-inspect{border:2px solid #214c2c;box-shadow:inset 0 0 0 1px #fff2a2}
.ludo-shared-squares{width:100%;min-height:44px!important;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px!important;font-size:12px!important}.ludo-result .ludo-shared-squares{margin-top:15px}
.ludo-stack-details{display:grid;gap:19px}.ludo-stack-detail{padding:17px;border:1px solid #d4dfc8;border-radius:16px;background:#fafcf4;min-width:0}.ludo-stack-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.ludo-stack-detail-heading h3{font-size:18px;font-weight:800}.ludo-stack-detail-heading>span{font-size:11px;color:#5c7657}
.ludo-expanded-square{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding:20px 15px;margin:15px 0;border:2px solid #708864;border-radius:13px;background:radial-gradient(ellipse,#fffbee,#eef2df);min-height:80px;align-items:center;justify-items:center}
.ludo-expanded-coin{display:block;width:40px;height:40px;border:2px solid var(--ludo-dark);border-radius:50%;position:relative;background:radial-gradient(circle at 30% 15%,#ffffff8c,transparent 60%),var(--ludo-color);box-shadow:0 3px 0 var(--ludo-dark),0 4px 5px #20432425,inset 0 0 0 2px #fff9d955}
.ludo-expanded-coin:after{content:"";position:absolute;inset:20%;border:1px solid #ffffff75;border-radius:50%}.ludo-expanded-coin.selected{outline:3px solid #214d2d;outline-offset:3px;box-shadow:0 0 0 5px #f6d970}
.ludo-square-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ludo-square-legend>span{display:grid;grid-template-columns:13px minmax(0,1fr);column-gap:6px;align-items:center}.ludo-square-legend i{width:11px;height:11px;background:var(--ludo-color);border:1px solid var(--ludo-dark);border-radius:50%;grid-row:1/3}.ludo-square-legend strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.ludo-square-legend small{font-size:10px;color:#61765c}
@media(max-width:370px){.ludo-stack-detail{padding:12px}.ludo-stack-detail-heading{align-items:flex-start;flex-direction:column;gap:4px}.ludo-expanded-square{gap:11px;padding:17px 8px}.ludo-expanded-coin{width:32px;height:32px}.ludo-square-legend{gap:10px}.ludo-square-legend strong{font-size:11px}}
@media(orientation:landscape) and (min-width:568px) and (max-height:650px){.ludo-shared-squares{font-size:11px!important}.ludo-yard-name strong{font-size:9px}.ludo-yard-name>span{font-size:7px}}

/* One solid six-face die is shared by the resting view and the tracked tumble. */
.ludo-die-visual{transform:none;box-shadow:none!important;border-radius:0}
.ludo-die-scene{position:relative;display:block;width:100%;height:100%;perspective:450px;perspective-origin:50% 48%;container-type:size;isolation:isolate}
.ludo-die-cube{position:absolute;left:15%;top:12%;width:70%;height:70%;transform-style:preserve-3d;transform-origin:50% 50%;will-change:transform}
.ludo-die-cube>.ludo-die-face{position:absolute;inset:0;display:grid;width:100%;height:100%;padding:16%;gap:9%;border:1px solid #e2dfcc;border-radius:11%;background:linear-gradient(135deg,#fffef7,#f2efdb);backface-visibility:hidden;box-shadow:inset 2px 2px 1px #ffffff,inset -2px -2px 3px #b1ad932e}
.ludo-die-cube>.ludo-die-face>i{background:#21392f;box-shadow:inset 0 1px 2px #071e1877,0 1px 0 #fffef8}
.ludo-cube-face-1{transform:translateZ(35cqw)}
.ludo-cube-face-2{transform:rotateX(90deg) translateZ(35cqw)}
.ludo-cube-face-3{transform:rotateY(90deg) translateZ(35cqw)}
.ludo-cube-face-4{transform:rotateY(-90deg) translateZ(35cqw)}
.ludo-cube-face-5{transform:rotateX(-90deg) translateZ(35cqw)}
.ludo-cube-face-6{transform:rotateY(180deg) translateZ(35cqw)}
.ludo-die-core{position:absolute;inset:2%;border-radius:14%;background:#eee9d6;transform:translateZ(0);backface-visibility:hidden}
.ludo-die-contact{position:absolute;left:18%;top:79%;width:64%;height:17%;border-radius:50%;background:#3d452b;opacity:.23;filter:blur(2px)}
.ludo-roll-button.ready .ludo-die-scene:after{content:"";position:absolute;left:4%;right:4%;bottom:-5%;height:14%;border:1px solid #7c976259;border-radius:50%;pointer-events:none}
.ludo-die-shadow-flight{position:fixed;left:0;top:0;border-radius:50%;background:#3d452b;pointer-events:none;will-change:transform,opacity,filter}
.ludo-die-rolling-object .ludo-die-contact{display:none}
.ludo-die-rolling-object .ludo-die-scene{overflow:visible}
.ludo-tile-die{box-shadow:none;border-radius:0}
/* Pip visibility must not override the hidden source while its tracked clone rolls. */
.ludo-dice-tray.rolling .ludo-die-visual,
.ludo-dice-tray.rolling .ludo-die-visual *{visibility:hidden!important}
.ludo-die-cube>.ludo-die-face,
.ludo-die-cube>.ludo-die-face>*{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.ludo-die-cube>.ludo-die-face{transform-style:flat;background-color:#f7f3df}

/* Whose turn, and the last roll with who rolled it. */
.ludo-turn-prompt{display:flex;align-items:center;justify-content:center;gap:9px}
.ludo-turn-coin{flex:none;width:18px;height:18px;border-radius:50%;background:var(--ludo-color,#6b7d6d);border:2px solid var(--ludo-dark,#3c4a3e);box-shadow:inset 0 0 0 2px #fff6}
.ludo-last-roll{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #dde3d1;border-left:5px solid var(--ludo-color,#8a9a86);border-radius:12px;background:#fffef7;min-width:0}
.ludo-last-roll>span:last-child{display:grid;min-width:0}
.ludo-last-roll strong{font-size:15px;font-weight:720;color:#23402f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ludo-last-roll b{font-size:19px;color:var(--ludo-dark,#23402f)}
.ludo-last-roll small{font-size:12.5px;color:#4e6450}

/* Moves happen on the board: tap a glowing coin, then its marked landing square.
   The panel is one slim strip with the die, whose turn it is and the last roll. */
.ludo-token.movable{box-shadow:0 0 0 2px #fffbe0,0 0 0 4px var(--ludo-dark);animation:ludo-movable 1.4s ease-in-out infinite;z-index:6}
.ludo-cell.has-movable{box-shadow:inset 0 0 0 2px var(--mover,#1d4a2e);background:#fffbe0!important}
.ludo-yard-token.available{outline:none;background:transparent}
@keyframes ludo-movable{0%,100%{box-shadow:0 0 0 2px #fffbe0,0 0 0 4px var(--ludo-dark)}50%{box-shadow:0 0 0 3px #fffbe0,0 0 0 7px color-mix(in srgb,var(--ludo-color) 55%,transparent)}}
.ludo-token.selected{outline:none;box-shadow:0 0 0 2px #fffbe0,0 0 0 5px #1d4a2e;z-index:7}
.ludo-destination-tap,.ludo-home-destination{display:grid;place-items:center;background:#fff8c8b3;border:2px dashed #1f4a2f;color:transparent}
.ludo-ghost{animation:ludo-spot 1.2s ease-in-out infinite}
.ludo-cell.destination{background:#fff3a8!important}
.ludo-ghost{display:block;height:78%;width:auto;aspect-ratio:1;max-width:78%;border-radius:50%;background:var(--ludo-color);opacity:.55;border:2px solid var(--ludo-dark);box-shadow:0 0 0 3px #fffbe0}
@keyframes ludo-spot{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.ludo-bar{padding:10px 12px;gap:8px}
.ludo-bar-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}
.ludo-bar .ludo-dice-tray{padding:3px;border-radius:14px}
.ludo-bar .ludo-roll-button,.ludo-bar .ludo-die-display{display:grid;min-height:0;width:auto;padding:4px 8px;gap:3px}
.ludo-bar .ludo-die-visual{width:54px;height:54px}
.ludo-bar .ludo-roll-caption{font-size:11px}
.ludo-bar .ludo-roll-button.ready .ludo-roll-caption{font-size:12px}
.ludo-bar-text{display:grid;gap:6px;min-width:0}
.ludo-bar .ludo-turn-prompt{justify-content:flex-start;text-align:left;font-size:15px;min-height:0}
.ludo-bar .ludo-last-roll{padding:5px 9px;gap:8px}
.ludo-bar .ludo-last-roll strong{font-size:13.5px}
.ludo-bar .ludo-last-roll b{font-size:16px}
.ludo-bar .ludo-last-roll small{font-size:11.5px}
.ludo-bar .ludo-shared-squares{min-height:38px!important;padding:6px 10px!important}
.ludo-bar .ludo-capture-note{font-size:11.5px;margin:0}
.ludo-audience .ludo-bar .ludo-die-visual{width:78px;height:78px}
.ludo-audience .ludo-bar .ludo-turn-prompt{font-size:19px}
@media(prefers-reduced-motion:reduce){.ludo-token.movable,.ludo-ghost{animation:none}}
.animations-off .ludo-token.movable,.animations-off .ludo-ghost{animation:none}
.ludo-deselect{position:absolute;left:calc(var(--piece-x) + 3.6%);top:calc(var(--piece-y) - 3.6%);translate:-50% -50%;z-index:12}
.ludo-yard-name .gh-face{--face:clamp(20px,2.6vw,34px);display:block;margin:0 auto 1px}
