.ludo-main{max-width:950px;padding-top:12px}.ludo-heading{display:flex;gap:8px;align-items:center;margin-bottom:12px}.ludo-heading h1{font-size:38px;margin:6px auto 6px 0}.ludo-main button:not(.piece),#ludo-help button,#ludo-confirm button{border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:var(--panel);color:var(--ink)}.ludo-main .primary{background:var(--button)!important;color:white!important}#ludo-setup{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}#ludo-setup label{margin:0;display:flex;align-items:center;gap:8px}#ludo-setup select{font-size:16px;padding:6px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px}#ludo-setup details{flex-basis:100%;font-size:11px}#ludo-setup details label{margin-top:8px}.ludo-play{display:flex;gap:28px;align-items:center}#ludo-board{width:min(62vh,480px);aspect-ratio:1;display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);position:relative;background:#f3eddb;border:5px solid #406657;border-radius:12px;overflow:hidden;flex-shrink:0}.cell{border:1px solid #c1bcac;min-width:0;min-height:0;color:#1f4937;font-size:12px;display:flex;align-items:center;justify-content:center}.yard{border:10px solid var(--piece);background:#ffffffd9;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:bold;color:#163323}.lane{background:var(--piece);opacity:.6}.piece{grid-area:var(--r)/var(--c);min-height:0!important;min-width:0;align-self:center;justify-self:center;width:80%;height:80%;border:2px solid #fff!important;background:var(--piece)!important;color:#fff;box-shadow:0 1px 3px #0008;border-radius:50%;padding:0!important;z-index:2;font-size:9px;font-weight:bold;transform:translate(var(--dx,0),var(--dy,0))}.piece:disabled{cursor:default;opacity:1}.piece.legal{outline:3px solid #fff;box-shadow:0 0 0 5px #16291c;z-index:3}.ludo-play aside{min-width:0;flex:1;font-size:12px}#ludo-turn{font-weight:bold;font-size:17px}#ludo-die{font-size:70px;margin:12px 0;line-height:1}#ludo-log{line-height:1.5;min-height:40px}#ludo-scores p{border-left:4px solid var(--piece);padding-left:8px;margin:8px 0}.ludo-play small{color:var(--muted);font-size:10px}#ludo-help p{font-size:11px}#ludo-confirm button{margin:8px}#ludo-roll{width:100%;justify-content:center}#ludo-pause:disabled{opacity:.4}@media(max-width:650px){.ludo-heading h1{font-size:32px}.ludo-heading button{padding:7px!important;font-size:10px}#ludo-setup{gap:8px}#ludo-setup label{font-size:10px}.ludo-play{display:block}#ludo-board{width:100%;max-width:390px;margin:auto}.ludo-play aside{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:12px}#ludo-turn{font-size:14px;grid-column:1/-1}#ludo-die{font-size:40px;margin:0;text-align:center}#ludo-log{grid-column:1/-1;margin:6px 0;min-height:26px}#ludo-scores{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px 12px}#ludo-scores p{font-size:10px;margin:0}.ludo-play small{grid-column:1/-1}.yard{border-width:7px}.cell{font-size:9px}.piece{font-size:7px}}
.piece.edible{outline:3px dashed #111;box-shadow:0 0 0 5px #ffe875;z-index:4;cursor:crosshair}.piece.edible::after{content:'×';position:absolute;right:-5px;top:-8px;background:#ffe875;color:#111;border-radius:50%;width:13px;height:13px;font-size:12px;line-height:13px}#ludo-log{overflow-wrap:anywhere}
.piece.safe-piece::after{content:'★';position:absolute;right:-5px;top:-7px;background:#153a2c;color:white;border-radius:50%;width:12px;height:12px;font-size:8px;line-height:12px}
#ludo-board{background-image:repeating-linear-gradient(45deg,transparent,transparent 9px,#00000003 9px,#00000003 10px);box-shadow:0 18px 40px #0003;transition:border-color .3s,box-shadow .3s}#ludo-board[data-turn="0"]{border-color:#c44949}#ludo-board[data-turn="1"]{border-color:#138453}#ludo-board[data-turn="2"]{border-color:#c39414}#ludo-board[data-turn="3"]{border-color:#286fc0}.yard{background:radial-gradient(ellipse,#fff,#e8eee7);box-shadow:inset 0 0 0 2px #ffffff80}.piece{background:radial-gradient(circle at 30% 20%,#ffffff65,var(--piece) 64%)!important;box-shadow:0 3px 0 #0004,0 4px 7px #0004;transition:box-shadow .15s}.piece.legal{animation:ludo-choice 1.5s ease-in-out infinite}.piece.edible{animation:ludo-target 1.1s ease-in-out infinite}#ludo-die{filter:drop-shadow(0 4px 0 #0003)}#ludo-turn{padding:7px 0}#ludo-log{padding:9px 11px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.capture-feedback{animation:ludo-capture .7s ease-out}.ludo-victory{box-shadow:0 0 35px #d5ba6570!important}#ludo-roll:not(:disabled):hover{filter:brightness(1.1)}@keyframes ludo-choice{50%{box-shadow:0 0 0 5px #ffe87555,0 4px 6px #0005}}@keyframes ludo-target{50%{box-shadow:0 0 0 7px #ffe87588}}@keyframes ludo-capture{0%{background:#c3941433;border-color:#d5b459}100%{border-color:var(--line)}}
#ludo-die{height:86px;min-width:90px;display:grid;place-items:center;perspective:450px;filter:none;margin:10px 0}.dice-cube{position:relative;width:56px;height:56px;transform-style:preserve-3d;will-change:transform}.dice-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:4px;padding:8px;border-radius:10px;border:1px solid #c9cebf;background:linear-gradient(135deg,#fff,#dbe3d7);box-shadow:inset 0 0 6px #0001;backface-visibility:hidden}.pip{background:#14392d;border-radius:50%;box-shadow:inset 0 1px 2px #0007}.empty-pip{visibility:hidden}.face-1{transform:translateZ(28px)}.face-2{transform:rotateY(90deg) translateZ(28px)}.face-3{transform:rotateX(90deg) translateZ(28px)}.face-4{transform:rotateX(-90deg) translateZ(28px)}.face-5{transform:rotateY(-90deg) translateZ(28px)}.face-6{transform:rotateY(180deg) translateZ(28px)}.dice-rolling{background:radial-gradient(ellipse,#82c69b22,transparent 70%)}@media(max-width:650px){#ludo-die{height:76px;margin:0}}
#ludo-die{display:flex;align-items:center;justify-content:center;gap:12px}.ludo-main button.die-choice{background:transparent!important;border:2px solid transparent;padding:8px!important;width:76px;height:78px;display:grid;place-items:center;perspective:450px;border-radius:12px}.die-choice[aria-pressed=true]{border-color:var(--accent)!important;background:#78d69716!important}.die-choice.die-used{opacity:.35}.die-choice:disabled{cursor:default}.ludo-heading{flex-wrap:wrap}@media(max-width:650px){.ludo-main button.die-choice{width:57px;height:66px;padding:3px!important}#ludo-die{gap:3px}.dice-cube{width:44px;height:44px;--dice-half:22px}.dice-face{padding:6px;gap:3px;border-radius:8px}}.dice-cube{--dice-half:28px}.face-1{transform:translateZ(var(--dice-half))}.face-2{transform:rotateY(90deg) translateZ(var(--dice-half))}.face-3{transform:rotateX(90deg) translateZ(var(--dice-half))}.face-4{transform:rotateX(-90deg) translateZ(var(--dice-half))}.face-5{transform:rotateY(-90deg) translateZ(var(--dice-half))}.face-6{transform:rotateY(180deg) translateZ(var(--dice-half))}@media(max-width:650px){.dice-cube{--dice-half:22px}}
#ludo-online{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:12px;font-size:11px}.ludo-online-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ludo-online-actions input{width:140px;padding:9px;font-size:16px}#ludo-room{margin-top:10px}#ludo-room button{margin:5px}#ludo-members{line-height:1.5}#ludo-invite-url{width:100%;font-size:12px;padding:8px}#ludo-online-message{margin:6px 0;line-height:1.4}@media(max-width:650px){.ludo-online-actions>*{flex:1;min-width:100px}.ludo-online-actions input{width:100px}}
#ludo-entry{max-width:430px;margin:20px auto 26px;padding:22px;border:1px solid var(--line);background:var(--panel);border-radius:20px}.ludo-entry-actions>p{font:22px/1.3 Georgia;margin:0 0 18px}.ludo-entry-actions>label{max-width:none;margin:12px 0}.ludo-entry-actions>label input{font-size:16px}.ludo-entry-actions>.primary,.ludo-entry-actions>.secondary{width:100%;margin:10px 0;justify-content:space-between}#ludo-table-options{font-size:11px;color:var(--muted);margin-top:14px}#ludo-table-options #ludo-setup{padding-top:14px;margin:0;display:grid;gap:12px}#ludo-online:not(:has(#ludo-room:not([hidden]))){border:0;background:none;padding:0;margin:0}#ludo-online:not(:has(#ludo-room:not([hidden]))) #ludo-online-message{text-align:center;font-size:11px;color:var(--muted)}@media(max-width:650px){#ludo-entry{padding:18px;margin-top:10px}.ludo-entry-actions>p{font-size:22px}.ludo-heading{margin-bottom:6px}}

.ludo-home-flight{position:fixed;z-index:100;pointer-events:none;display:grid;place-items:center;border:2px solid white;border-radius:50%;color:white;font-weight:bold;box-shadow:0 3px 12px #0005}

@media(max-width:360px){.ludo-heading{gap:4px}.ludo-heading h1{font-size:28px}.ludo-heading button{padding:6px!important;min-height:44px}}

/* Centre lone tokens; pack shared-square tokens inside the actual grid cell. */
.piece{width:var(--piece-size,80%);height:var(--piece-size,80%)}

/* Reserve status space so turn messages never resize the fitted board. */
#ludo-log{height:60px;min-height:60px;max-height:60px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:18px;margin:8px 0;box-sizing:border-box}
#ludo-turn{height:52px;overflow:hidden;line-height:20px;box-sizing:border-box}
#ludo-move-open{width:100%;min-height:44px;grid-column:1/-1}
#ludo-move-dialog{max-width:420px}#ludo-move-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}#ludo-move-dialog button{padding:12px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink)}#ludo-move-close{width:100%;margin-top:12px}#ludo-move-dialog p{font-size:12px;line-height:1.5}
#ludo-scores{min-height:92px}#ludo-mode-note{display:block;min-height:28px}
@media(max-width:650px){#ludo-log{height:60px;min-height:60px;max-height:60px}#ludo-scores{min-height:34px;align-content:start}#ludo-turn{height:46px}}

/* Contain visual dice overflow; turn/poll text must not change room height. */
#ludo-die{contain:layout;overflow:clip;padding:5px}#ludo-online-message{height:32px;min-height:32px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
