:root{--player-red:#ed1c24;--player-green:#00a651;--player-yellow:#ffde00;--player-blue:#1689c7;--player-purple:#9333ea;--player-orange:#f97316;--player-pink:#ec4899;--player-teal:#14b8a6;--player-lime:#84cc16;--player-cyan:#06b6d4;--player-magenta:#d946ef;--player-brown:#a16207;color:#f5f6fa;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0d1020;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{background:radial-gradient(circle at top,#1d294d,#0c1020 52%,#070b15 100%);min-width:100%;min-height:100%;margin:0}body{justify-content:center;align-items:center;min-height:100vh;display:flex}button,input,select{font:inherit}button{cursor:pointer}.app-shell{width:min(1300px,100%);min-height:100vh;padding:24px}.screen-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c111fc7;border:1px solid #98a6c12e;border-radius:28px;box-shadow:0 30px 80px #070b14b3}.menu-screen{padding:24px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.brand{align-items:center;gap:16px;display:flex}.brand-mark{object-fit:cover;border-radius:14px;flex:0 0 58px;width:58px;height:58px;display:block}.brand h1{margin:0;font-size:clamp(2rem,3vw,3rem)}.brand p{color:#b6bfdb;margin:0}.primary,.secondary,.ghost{border:none;border-radius:14px;padding:.9rem 1.3rem;font-weight:700;transition:all .18s}.primary{color:#fff;background:linear-gradient(135deg,#ff7a18,#ec407a);box-shadow:0 16px 30px #ff626666}.primary:hover{transform:translateY(-1px)}.primary:disabled{opacity:.4;cursor:not-allowed}.secondary{color:#edf3ff;background:#303d67}.ghost{color:#dfe7ff;background:#94a3b814}.menu-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.panel{background:#111827b8;border:1px solid #8c96b62e;border-radius:22px;padding:22px}.settings-panel,.options-panel{min-height:420px}.settings-panel h2,.options-panel h2,.status-box h3{margin:0 0 18px}.field{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.field span{color:#dfe8ff;font-weight:600}.field input,.field select{color:#fff;background:#080a0f73;border:1px solid #a0aecd33;border-radius:12px;padding:.8rem .9rem}.add-player-name{gap:8px;display:flex}.add-player-name input{flex:1;min-width:0}.add-player-name button{border-radius:10px;padding:.55rem .8rem}.player-config{grid-template-columns:1.4fr .7fr auto;align-items:start;gap:12px;margin-bottom:14px;display:grid}.player-config.team-mode{grid-template-columns:1.4fr .7fr .7fr auto}.player-config .field{min-width:0;margin-bottom:0}.player-config[draggable=true]{cursor:grab}.player-config.dragging{opacity:.55}.player-name-label{justify-content:space-between;align-items:center;gap:8px;display:flex}.player-name-label>label{color:#dfe8ff;font-weight:600}.player-bot-control{color:#aab8d5;flex:none;align-items:center;gap:5px;display:inline-flex}.player-bot-control svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px}.player-bot-control input{accent-color:#ff7a18;width:16px;height:16px;margin:0}.player-swap-button{color:#dfe8ff;background:#080a0f59;border:1px solid #a0aecd38;border-radius:999px;place-items:center;width:34px;height:34px;margin:-5px auto 9px;padding:0;font-size:.85rem;display:grid}.player-swap-button span{font-size:1.15rem;line-height:1}.player-swap-button:hover,.player-swap-button:focus-visible{background:#94a3b824;border-color:#a0aecd8c}.team-setup-warning{color:#ffb4a8;margin:0 0 14px}.compact{margin-bottom:0}.toggle-row{justify-content:center;align-items:center;gap:10px;min-height:70px;display:flex}.toggle-row input{width:20px;height:20px}.toggle-list{gap:12px;display:grid}.toggle-list label{background:#0b111d80;border:1px solid #8a98b62e;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:.8rem .9rem;display:flex}.toggle-list input{width:18px;height:18px}.game-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.game-header h2{margin:0;font-size:clamp(1.8rem,3vw,2.8rem)}.eyebrow{color:#96a7cc;letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:.72rem}.pill-row{align-items:center;gap:12px;display:flex}.turn-indicator,.dice-value{color:#f8fbff;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;justify-content:center;align-items:center;padding:.45rem .8rem;font-weight:700;display:inline-flex}.color-red{background:var(--player-red)}.color-green{background:var(--player-green)}.color-yellow{background:var(--player-yellow);color:#1f2430}.color-blue{background:var(--player-blue)}.color-purple{background:var(--player-purple)}.color-orange{background:var(--player-orange)}.color-pink{background:var(--player-pink)}.color-teal{background:var(--player-teal)}.color-lime{background:var(--player-lime)}.color-cyan{background:var(--player-cyan)}.color-magenta{background:var(--player-magenta)}.color-brown{background:var(--player-brown)}.game-layout{grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:20px;display:grid}.sidebar{flex-direction:column;gap:20px;display:flex}.status-box{background:#090f1980;border:1px solid #94a3b81f;border-radius:18px;padding:16px}.game-status{color:#e8efff;background:#36487152;border:1px solid #94a3b82e;border-radius:14px;margin:0;padding:12px 14px;font-weight:600}.winner-card{color:#101725;border:1px solid #ffffff59;border-radius:16px;gap:5px;padding:16px;display:grid;box-shadow:0 12px 26px #0000003d}.winner-red{background:var(--player-red)}.winner-green{background:var(--player-green)}.winner-yellow{background:var(--player-yellow)}.winner-blue{background:var(--player-blue)}.winner-purple{background:var(--player-purple)}.winner-orange{background:var(--player-orange)}.winner-pink{background:var(--player-pink)}.winner-teal{background:var(--player-teal)}.winner-lime{background:var(--player-lime)}.winner-cyan{background:var(--player-cyan)}.winner-magenta{background:var(--player-magenta)}.winner-brown{background:var(--player-brown)}.winner-kicker{letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.winner-card strong{font-size:1.25rem}.winner-card>span:last-child{font-size:.88rem}.standings-list{gap:5px;margin:8px 0 0;padding:0;list-style:none;display:grid}.standings-list li{border-top:1px solid #10172533;justify-content:space-between;gap:12px;padding-top:5px;display:flex}.standings-list li strong{font-size:.95rem}.live-standings .standings-list li{color:#e8efff;border-top-color:#94a3b829;grid-template-columns:34px 1fr auto;align-items:center;display:grid}.live-standings .standings-list li>span:last-child{color:#aac0ed;font-size:.8rem}.place-medal{color:#382809;background:linear-gradient(135deg,#ffe58a,#e6a923);border:1px solid #fff9;border-radius:999px;justify-content:center;align-items:center;gap:3px;width:fit-content;min-width:34px;padding:3px 7px;font-size:.75rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 2px 6px #0003}.place-medal span{font-size:.85rem}.board-place-banner{z-index:5;gap:6px;min-width:76px;height:42px;padding:6px 12px;font-size:1.15rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 12px #00000059}.board-place-banner span{font-size:1.25rem}.medal-2{background:linear-gradient(135deg,#f3f5f8,#9ea9b8)}.medal-3{color:#2a1609;background:linear-gradient(135deg,#f2bf88,#a9602c)}.medal-4{background:linear-gradient(135deg,#c8d8e6,#73869a)}.player-progress{justify-items:end;gap:4px;display:grid}.player-swatch{border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:8px;padding:10px 8px;display:grid}.player-swatch.active{background:#ffffff0a}.chip{border-radius:50%;width:14px;height:14px;display:inline-block}.player-swatch strong,.player-swatch small,.player-swatch em{display:block}.player-swatch small,.player-swatch em{color:#aac0ed}.game-app{width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}.game-board-screen{justify-content:center;align-items:center;width:100%;height:100%;padding:52px 12px 12px;display:flex;position:relative;overflow:hidden}.game-board-screen .board-panel{flex:none}.game-board-screen .board-toolbar{top:10px;left:12px;right:12px}.game-board-screen .board-actions button{min-height:40px}.board-stage{justify-content:center;align-items:center;display:flex}.board-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:18px;left:18px;right:18px}.board-toolbar .game-status{max-width:min(60%,540px)}.board-actions{align-items:center;gap:8px;display:flex}.game-menu{position:relative}.game-menu-trigger{justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:flex}.game-menu-trigger svg{fill:currentColor;flex:none;width:24px;height:24px;display:block}.game-menu-items{z-index:12;background:#141c2d;border:1px solid #98a6c14d;border-radius:12px;min-width:144px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:6px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 12px 30px #0006}.game-menu-items button{color:#f5f6fa;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:.55rem .75rem;display:flex}.game-menu-items button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:0 0 18px;width:18px;height:18px}.game-menu-items button:first-child svg{transform:translate(-3px)}.game-menu-items button:last-child svg{transform:translate(3px)}.game-menu-items button:hover,.game-menu-items button:focus-visible{background:#94a3b829}.board-actions button{border-radius:10px;padding:.55rem .85rem}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#030712b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.exit-dialog{background:#141c2d;border:1px solid #98a6c14d;border-radius:20px;width:min(100%,400px);padding:24px;box-shadow:0 24px 70px #0000008c}.in-game-settings{background:#141c2d;border:1px solid #98a6c14d;border-radius:20px;width:min(100%,560px);max-height:min(85dvh,720px);padding:20px;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.in-game-settings-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.in-game-settings-header h2{color:#f5f6fa;margin:0}.in-game-player-settings{gap:12px;display:grid}.in-game-player-row{background:#0b111d80;border:1px solid #8a98b62e;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(120px,.8fr);align-items:center;gap:14px;padding:12px;display:grid}.in-game-player-name{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.in-game-player-name>strong{color:#f5f6fa;text-overflow:ellipsis;white-space:nowrap;white-space:nowrap;min-width:0;overflow:hidden}.in-game-computer-toggle{align-items:center;gap:8px}.in-game-computer-toggle input{width:20px;height:20px}.exit-dialog h2{color:#f5f6fa;margin:0}.exit-dialog p{color:#b6bfdb;margin:10px 0 24px}.exit-dialog-actions{justify-content:flex-end;gap:10px;display:flex}.board-panel{background:linear-gradient(135deg,#3745625c,#080a0f85);border-radius:24px;width:fit-content;padding:18px;position:relative}.board-grid{background:#1b2435;border-radius:18px;grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(15,1fr);gap:0;display:grid;position:relative;overflow:visible;box-shadow:inset 0 0 0 2px #a8b1cc29}.board-player-name{z-index:4;color:#000;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid #ffffff80;border-radius:999px;justify-content:center;align-items:center;padding:0 .3em;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(12px,2.6vw,22px);font-weight:700;line-height:1;display:flex;position:absolute;overflow:hidden}.board-team-label{z-index:4;color:#000;white-space:nowrap;transform-origin:50%;pointer-events:none;justify-content:center;align-items:center;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(9px,1.5vw,16px);font-weight:800;line-height:1;display:flex;position:absolute}.team-winner-banner{color:#fff;background:#0f172ae0;border:1px solid #fff6;border-radius:10px;padding:.45rem .75rem;font-weight:800}.name-seat-red{top:0;left:0;transform:rotate(180deg)}.name-seat-green{top:16.6667%;right:-16.6667%;transform:rotate(270deg)}.name-seat-yellow{bottom:0;right:0;transform:rotate(360deg)}.name-seat-blue{bottom:16.6667%;left:-16.6667%;transform:rotate(90deg)}.team-seat-red{transform:rotate(180deg)}.team-seat-green{transform:rotate(270deg)}.team-seat-yellow{transform:rotate(360deg)}.team-seat-blue{transform:rotate(90deg)}.name-color-red{border-color:var(--player-red)}.name-color-green{border-color:var(--player-green)}.name-color-yellow{border-color:var(--player-yellow)}.name-color-blue{border-color:var(--player-blue)}.name-color-purple{border-color:var(--player-purple)}.name-color-orange{border-color:var(--player-orange)}.name-color-pink{border-color:var(--player-pink)}.name-color-teal{border-color:var(--player-teal)}.name-color-lime{border-color:var(--player-lime)}.name-color-cyan{border-color:var(--player-cyan)}.name-color-magenta{border-color:var(--player-magenta)}.name-color-brown{border-color:var(--player-brown)}.board-die{z-index:6;cursor:pointer;touch-action:manipulation;background:linear-gradient(145deg,#fff,#e8ebf0);border:1px solid #d5d9e0;border-radius:12px;place-items:center;width:52px;height:52px;padding:0;display:grid;position:fixed;box-shadow:0 5px 12px #080d186b,inset 0 1px 1px #fff}.board-die.die-red{background:linear-gradient(145deg,#ff4650,#c90d18);border-color:#ff9a9e}.board-die.die-green{background:linear-gradient(145deg,#16c96e,#00833f);border-color:#8af0b4}.board-die.die-yellow{background:linear-gradient(145deg,#ffe85b,#e0b900);border-color:#fff0a0}.board-die.die-blue{background:linear-gradient(145deg,#32a9e8,#0874ae);border-color:#8bd5fa}.board-die.die-purple{background:linear-gradient(145deg,#b45cff,#7020c9);border-color:#d8b4fe}.board-die.die-orange{background:linear-gradient(145deg,#ff9a3c,#e45b08);border-color:#fed7aa}.board-die.die-pink{background:linear-gradient(145deg,#f472b6,#db2777);border-color:#fbcfe8}.board-die.die-teal{background:linear-gradient(145deg,#2dd4bf,#0f9488);border-color:#99f6e4}.board-die.die-lime{background:linear-gradient(145deg,#a3e635,#65a30d);border-color:#d9f99d}.board-die.die-cyan{background:linear-gradient(145deg,#22d3ee,#0891b2);border-color:#a5f3fc}.board-die.die-magenta{background:linear-gradient(145deg,#e879f9,#c026d3);border-color:#f5d0fe}.board-die.die-brown{background:linear-gradient(145deg,#d6a35c,#854d0e);border-color:#fcd9a8}.board-die:disabled{opacity:1;cursor:default}.die-pips{grid-template:repeat(3,1fr)/repeat(3,1fr);place-items:center;width:70%;height:70%;display:grid}.die-pip{opacity:0;background:#222b3b;border-radius:50%;width:7px;height:7px}.die-red .die-pip,.die-green .die-pip,.die-blue .die-pip{background:#fff}.die-yellow .die-pip{background:#222b3b}.die-pip.visible{opacity:1}.cell{background:#3a4357bf;border:1px solid #26314433;min-width:0;min-height:0;position:relative}.cell:first-child{border-top-left-radius:16px}.cell:nth-child(15){border-top-right-radius:16px}.cell:nth-child(211){border-bottom-left-radius:16px}.cell:nth-child(225){border-bottom-right-radius:16px}.cell.track{background:#f5f6f8}.cell.start-red{background:var(--player-red)}.cell.start-green{background:var(--player-green)}.cell.start-yellow{background:var(--player-yellow)}.cell.start-blue{background:var(--player-blue)}.cell.start-purple{background:var(--player-purple)}.cell.start-orange{background:var(--player-orange)}.cell.start-pink{background:var(--player-pink)}.cell.start-teal{background:var(--player-teal)}.cell.start-lime{background:var(--player-lime)}.cell.start-cyan{background:var(--player-cyan)}.cell.start-magenta{background:var(--player-magenta)}.cell.start-brown{background:var(--player-brown)}.cell.base{background:#8a9ab21f}.cell.base-red{background:var(--player-red)}.cell.base-green{background:var(--player-green)}.cell.base-yellow{background:var(--player-yellow)}.cell.base-blue{background:var(--player-blue)}.cell.base-purple{background:var(--player-purple)}.cell.base-orange{background:var(--player-orange)}.cell.base-pink{background:var(--player-pink)}.cell.base-teal{background:var(--player-teal)}.cell.base-lime{background:var(--player-lime)}.cell.base-cyan{background:var(--player-cyan)}.cell.base-magenta{background:var(--player-magenta)}.cell.base-brown{background:var(--player-brown)}.cell.home-path{background:#ffffffa8}.cell.home-red{background:var(--player-red)}.cell.home-green{background:var(--player-green)}.cell.home-yellow{background:var(--player-yellow)}.cell.home-blue{background:var(--player-blue)}.cell.home-purple{background:var(--player-purple)}.cell.home-orange{background:var(--player-orange)}.cell.home-pink{background:var(--player-pink)}.cell.home-teal{background:var(--player-teal)}.cell.home-lime{background:var(--player-lime)}.cell.home-cyan{background:var(--player-cyan)}.cell.home-magenta{background:var(--player-magenta)}.cell.home-brown{background:var(--player-brown)}.track-dot{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.track-dot svg{fill:#f0a000;width:82%;height:82%;display:block;overflow:visible}.direction-marker{font-size:1.15rem;font-weight:700;line-height:1;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(45deg)}.direction-red{color:var(--player-red)}.direction-green{color:var(--player-green)}.direction-yellow{color:#d6a900}.direction-blue{color:var(--player-blue)}.direction-purple{color:var(--player-purple)}.direction-orange{color:var(--player-orange)}.direction-pink{color:var(--player-pink)}.direction-teal{color:var(--player-teal)}.direction-lime{color:var(--player-lime)}.direction-cyan{color:var(--player-cyan)}.direction-magenta{color:var(--player-magenta)}.direction-brown{color:var(--player-brown)}.yard-pad{z-index:2;background:#f5f7fb;border:2px solid #2631449e;border-radius:2px;position:absolute}.home-center{z-index:2;background:#f5f7fb;position:absolute;overflow:hidden}.center-triangle{position:absolute;inset:0}.center-green{clip-path:polygon(0 0,100% 0,50% 50%)}.center-yellow{clip-path:polygon(100% 0,100% 100%,50% 50%)}.center-blue{clip-path:polygon(100% 100%,0 100%,50% 50%)}.center-red{clip-path:polygon(0 100%,0 0,50% 50%)}.center-color-red{background:var(--player-red)}.center-color-green{background:var(--player-green)}.center-color-yellow{background:var(--player-yellow)}.center-color-blue{background:var(--player-blue)}.center-color-purple{background:var(--player-purple)}.center-color-orange{background:var(--player-orange)}.center-color-pink{background:var(--player-pink)}.center-color-teal{background:var(--player-teal)}.center-color-lime{background:var(--player-lime)}.center-color-cyan{background:var(--player-cyan)}.center-color-magenta{background:var(--player-magenta)}.center-color-brown{background:var(--player-brown)}.token-stack{z-index:4;width:28px;height:40px;position:absolute;transform:translate(-50%,-100%)}.token{filter:drop-shadow(0 2px 2px #0d131f6b);background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;top:0;left:0}.token.stacked{transform-origin:50% 100%;transform:scale(.62)}.token.finished{transform-origin:50% 100%;transform:scale(.48)}.token.finished-red{transform:rotate(-90deg)scale(.48)}.token.finished-green{transform:rotate(0)scale(.48)}.token.finished-yellow{transform:rotate(90deg)scale(.48)}.token.finished-blue{transform:rotate(180deg)scale(.48)}.token-red{background:var(--player-red)}.token-green{background:var(--player-green)}.token-yellow{background:var(--player-yellow)}.token-blue{background:var(--player-blue)}.token-purple{background:var(--player-purple)}.token-orange{background:var(--player-orange)}.token-pink{background:var(--player-pink)}.token-teal{background:var(--player-teal)}.token-lime{background:var(--player-lime)}.token-cyan{background:var(--player-cyan)}.token-magenta{background:var(--player-magenta)}.token-brown{background:var(--player-brown)}.token.token-red,.token.token-green,.token.token-yellow,.token.token-blue,.token.token-purple,.token.token-orange,.token.token-pink,.token.token-teal,.token.token-lime,.token.token-cyan,.token.token-magenta,.token.token-brown{background:0 0}.yard-spot{z-index:3;border:2px solid #fff;border-radius:50%;width:25px;height:25px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #222d3d7a,inset 0 0 0 2px #ffffff6b}.yard-spot-red{background:var(--player-red)}.yard-spot-green{background:var(--player-green)}.yard-spot-yellow{background:var(--player-yellow)}.yard-spot-blue{background:var(--player-blue)}.yard-spot-purple{background:var(--player-purple)}.yard-spot-orange{background:var(--player-orange)}.yard-spot-pink{background:var(--player-pink)}.yard-spot-teal{background:var(--player-teal)}.yard-spot-lime{background:var(--player-lime)}.yard-spot-cyan{background:var(--player-cyan)}.yard-spot-magenta{background:var(--player-magenta)}.yard-spot-brown{background:var(--player-brown)}.pawn-svg{z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.pawn-outline{fill:#fff;stroke:#667085;stroke-width:1px}.pawn-fill{fill:var(--pawn-color);stroke:#0f172a73;stroke-width:.8px}.token-red{--pawn-color:var(--player-red)}.token-green{--pawn-color:var(--player-green)}.token-yellow{--pawn-color:var(--player-yellow)}.token-blue{--pawn-color:var(--player-blue)}.token-purple{--pawn-color:var(--player-purple)}.token-orange{--pawn-color:var(--player-orange)}.token-pink{--pawn-color:var(--player-pink)}.token-teal{--pawn-color:var(--player-teal)}.token-lime{--pawn-color:var(--player-lime)}.token-cyan{--pawn-color:var(--player-cyan)}.token-magenta{--pawn-color:var(--player-magenta)}.token-brown{--pawn-color:var(--player-brown)}.pawn-head-ring{fill:#fff}.pawn-head-fill{fill:var(--pawn-color);stroke:#0f172a33;stroke-width:.75px}.token.legal{filter:drop-shadow(0 0 3px #fff)drop-shadow(0 2px 2px #0d131f6b)}.token.legal:before{z-index:0;content:"";pointer-events:none;border:2px dotted #424b57;border-radius:50%;outline:1px solid #ffffffbf;width:16px;height:16px;position:absolute;top:calc(100% - 3px);left:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #0000008c}.token.legal-animated:before{animation:1.4s linear infinite legal-pawn-ring-spin}@keyframes legal-pawn-ring-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@media (width<=920px){html,body,#root{scrollbar-width:none;-ms-overflow-style:none;max-width:100%;overflow-x:clip}html *,body *,#root *{scrollbar-width:none;-ms-overflow-style:none}html ::-webkit-scrollbar{width:0;height:0;display:none}body ::-webkit-scrollbar{width:0;height:0;display:none}#root ::-webkit-scrollbar{width:0;height:0;display:none}.menu-grid,.game-layout{grid-template-columns:1fr}}@media (width<=640px){body{align-items:flex-start}.app-shell{width:100%;min-height:100svh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.screen-panel{border-radius:18px}.menu-screen{padding:14px}.topbar{gap:12px}.brand{gap:10px}.brand-mark{border-radius:14px;flex:0 0 46px;width:46px;height:46px}.brand h1{font-size:clamp(1.5rem,7vw,2rem)}.brand p{font-size:.8rem}.topbar>.primary{padding:.7rem .9rem}.panel{padding:16px}.player-config{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.player-config.team-mode{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.player-config>.field:first-child{grid-column:1/-1}.player-config .field{min-width:0}.game-board-screen{height:100%;padding:48px 4px 8px}.game-board-screen .board-toolbar{top:8px;left:4px;right:4px}.board-actions button{min-height:40px;padding:.5rem .75rem}.board-panel{border-radius:16px;padding:8px}.board-grid{border-radius:12px}.yard-spot{border-width:1.5px;box-shadow:0 0 0 1px #222d3d7a,inset 0 0 0 1px #ffffff6b}.die-pip{width:clamp(4px,1.8vw,7px);height:clamp(4px,1.8vw,7px)}.dialog-backdrop{padding:14px}.exit-dialog{padding:20px}.in-game-settings{padding:16px}.in-game-player-row{grid-template-columns:minmax(0,1fr) minmax(110px,.8fr);gap:8px;padding:10px}}@media (width<=360px){.player-config,.player-config.team-mode{grid-template-columns:1fr}.player-config>.field:first-child{grid-column:auto}.game-board-screen{padding-left:2px;padding-right:2px}}
