:root{--ink:#173c46;--muted:#55666a;--paper:#fffdf6;--teal:#145363;--gold:#f0b741;--line:#d8d6c7;--red:#a73338}*{box-sizing:border-box}body{margin:0;background:#edf2e9;color:var(--ink);font:15px/1.5 'Segoe UI',Arial,sans-serif;background-image:radial-gradient(ellipse at 75% 5%,#fff8df 0,transparent 45%)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid #abbdb9;background:#f7f9f1;color:#173c46;border-radius:9px;padding:10px 14px;min-height:44px;cursor:pointer;font-weight:700;transition:transform .15s}button:hover{background:#dbe9e6;color:#10313b;border-color:#416a72}button:active{transform:translateY(1px);background:#c9dfdc;color:#10313b}button:disabled{background:#e5e8e0;color:#52605b;border-color:#cad0c7;cursor:default;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ad3c28;outline-offset:3px}a{color:#164e60;text-underline-offset:4px}a:hover{color:#8b321e}.topbar{min-height:91px;padding:19px max(24px,calc((100vw - 1480px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffdf4e8;border-bottom:1px solid #d6dbd1}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:24px;font-weight:900;letter-spacing:1px;color:#173c46;line-height:1.12}.brand small{display:block;font-size:9px;letter-spacing:2.7px;margin-top:7px}.brand-icon{font-size:45px;line-height:1;color:#bc722f}.topbar nav{display:flex;align-items:center;gap:23px;font-size:13px;font-weight:600}.quiet{background:transparent;border-color:transparent;padding:7px 9px;font-size:13px}.quiet:hover{background:#e0eae1;color:#173c46}.topbar a{white-space:nowrap}main{max-width:1480px;margin:auto;padding:0 28px}.welcome{padding:46px 0 32px;display:flex;align-items:center;justify-content:space-between;gap:30px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:#627577;display:block}.welcome h1{font-family:Georgia,serif;font-size:clamp(38px,4.4vw,66px);font-weight:500;letter-spacing:-2px;line-height:1.04;margin:14px 0 17px}.welcome p{color:var(--muted);font-size:16px;line-height:1.65}.badges{display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}.badges span{padding:4px 11px;border:1px solid #b4c4b8;border-radius:18px;color:#3e5b5b;font-size:11px;font-weight:600}.welcome-note{border-left:1px solid #c6d0c1;padding:12px 35px;max-width:400px}.welcome-note b{font:italic 23px Georgia,serif;display:block}.welcome-note p{font-size:13px}.tiny-gear{display:block;font-size:48px;color:#b77831;animation:turn 25s linear infinite;width:55px;margin-bottom:9px}@keyframes turn{to{transform:rotate(360deg)}}h2{font:500 28px/1.18 Georgia,serif;margin:8px 0 18px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;align-items:start;gap:24px}.board-section{border:1px solid #c7d0c1;border-radius:18px;overflow:hidden;background:#fffdf6;box-shadow:0 12px 30px #1b403011}.board-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 11px}.board-top h2{font-size:24px;margin:6px 0}.pill{border-radius:25px;background:#e7eedf;color:#3f583c;padding:7px 11px;font-size:12px;font-weight:700;white-space:nowrap}.view-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 20px 14px}.view-controls button{min-height:36px;font-size:11px;padding:6px 11px}.view-controls label{margin-left:auto;font-size:11px;display:flex;align-items:center;gap:5px}.selected,.selected:hover{background:#173e49;color:white;border-color:#173e49}.board-window{margin:0 13px;border-radius:15px;overflow:hidden;background:#e2c899;border:6px solid #b38a5d;box-shadow:0 3px 0 #805c3e, inset 0 0 20px #51301855}#board{width:100%;height:auto;display:block}.board-footer{padding:15px 20px 8px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;min-height:59px}.board-footer>span{max-width:58%;color:#486364}.board-footer>div{display:flex;gap:6px}.legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:8px 20px 16px;font-size:11px;color:#4a6165}.legend i{font-style:normal;display:inline-grid;place-items:center;border-radius:4px;width:21px;height:21px;margin-right:4px;color:#173c46}.legend-build{background:#b7d6cf}.legend-cheese{background:#f8cd66}.legend-safe{background:#b9cdea}.legend-crank{background:#eb9890}.text-button{border:0;background:transparent;padding:0 2px;min-height:32px;text-decoration:underline;font-size:11px}.sidebar{display:grid;gap:15px}.card{padding:23px;background:#fffdf6;border:1px solid #ccd3c7;border-radius:15px;box-shadow:0 6px 14px #25483006}.card h2{font-size:30px;margin:9px 0 20px}.mode-tabs{display:flex;gap:4px;padding:4px;background:#edf1e9;border-radius:11px;margin-bottom:22px}.mode-tabs button{flex:1;font-size:11px;padding:8px 4px;border-color:transparent;min-height:39px}.form-row{display:flex;gap:10px}.form-row label{flex:1;min-width:0}label{display:block;font-weight:600;font-size:12px;margin-bottom:14px}input:not([type=checkbox]),select{display:block;width:100%;border:1px solid #b8c7bf;border-radius:8px;min-height:44px;background:#fffefa;color:#193d45;padding:8px 10px;margin-top:6px}input[type=checkbox]{width:17px;height:17px;accent-color:#15566b}input[type=range]{padding:0;accent-color:#15566b}.checkline{display:flex;align-items:center;gap:7px;font-weight:500;font-size:12px;margin:13px 0 18px}.seat-entry{display:grid;grid-template-columns:32px minmax(0,1fr) 90px;align-items:center;gap:7px;margin-bottom:9px}.seat-entry input,.seat-entry select{margin:0;font-size:12px;padding:6px;min-height:40px}.mouse-badge{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:16px;border:2px solid #fff5dd;box-shadow:0 1px 3px #18383c2b;color:#172d31;font-weight:900}.primary{background:#184d5c;color:#fffdf1;border-color:#184d5c;box-shadow:0 3px 0 #0c303a}.primary:hover,.primary:focus{background:#23667a;color:white;border-color:#23667a}.primary:active{background:#103d4b;color:white;box-shadow:0 1px 0 #0c303a}.primary span{float:right}.secondary{background:#fff1c9;color:#583e17;border-color:#d7b86f}.secondary:hover{background:#f7df9e;color:#493012}.full{width:100%;margin-bottom:10px}.extra-modes{display:grid;gap:4px;border-top:1px solid #d7ddd1;padding-top:14px;margin-top:15px}.extra-modes button{border:0;background:transparent;text-align:left;padding:6px;color:#355964;font-size:13px}.extra-modes button:hover{background:#e8efe7;color:#193f49}.edition-note{font-size:10px;color:#6b7368;border-top:1px solid #dde1d5;padding-top:17px;margin:16px 0 0;line-height:1.8}.small{font-size:12px;color:#586b6c;line-height:1.6}.join-row{display:flex;align-items:center;gap:7px;margin:10px 0}.join-row input{margin:0}.turn-card{border-top:5px solid #e6aa39}.turn-heading{display:flex;justify-content:space-between;align-items:center}.die{display:grid;place-items:center;background:#fff0ca;border:1px solid #d8b76a;border-radius:9px;width:48px;height:48px;font-size:34px;line-height:1;box-shadow:0 3px 0 #c7a463}.turn-card h2{margin:6px 0 11px}.turn-card p{font-size:14px}.turn-card .small{font-size:11px}#actions{display:grid;gap:8px}#actions button{text-align:left}#actions .primary{font-size:16px}.target-button{display:flex;align-items:center;gap:9px;justify-content:space-between}.compact{padding:19px}.player-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #e1e5da}.player-row.active{background:#edf3e8;border-radius:8px;padding-left:8px;padding-right:8px}.player-row.captured{opacity:.65}.player-row>div{flex:1}.player-row b{font-size:13px}.player-row small{display:block;color:#64716b;font-size:10px}.cheese-count{font-weight:800;font-size:15px;white-space:nowrap;color:#62450b}.bank-line{display:flex;justify-content:space-between;font-size:11px;color:#61716b;padding-top:12px}#eventLog{padding-left:20px;font-size:11px;max-height:160px;overflow:auto;line-height:1.55;color:#536469}#eventLog li{padding-bottom:7px}summary{font-weight:700;font-size:12px;cursor:pointer;min-height:28px}.lobby-player{display:flex;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid #dfe3d9}.lobby-player span{flex:1}.lobby-player small{display:block;color:#5c706b;font-size:11px}.lobby-player button{font-size:10px;padding:6px;min-height:36px}.tutorial-help{border-left:3px solid #d7a232;background:#fff3d0;padding:13px;font-size:12px;margin:12px 0}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:min(90vw,580px);padding:15px 24px;background:#173e49;color:#fffdf2;border-radius:12px;box-shadow:0 5px 25px #0003;z-index:30;font-size:14px}footer{padding:28px 0;font-size:11px;color:#6b7a73;display:flex;gap:12px}footer a{margin-left:auto}dialog{border:1px solid #adc4b8;background:#fffdf5;color:#173e49;border-radius:17px;padding:28px;max-width:min(450px,92vw);box-shadow:0 15px 80px #0004}dialog::backdrop{background:#12394488;backdrop-filter:blur(4px)}.dialog-title{display:flex;gap:20px;align-items:start;justify-content:space-between}.dialog-title h2{margin:0 0 25px}.dialog-title button{font-size:18px;line-height:1;padding:8px 12px}body.playing .welcome{display:none}body.playing .workspace{margin-top:24px}body.playing .turn-card{position:sticky;top:12px}body.playground .welcome{display:none}.track-tile{cursor:pointer}.track-tile:hover rect{stroke:#173f4c;stroke-width:4}.track-label{font-family:Arial,sans-serif;pointer-events:none}.pawn{filter:url(#pieceShadow)}[hidden]{display:none!important}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 350px}}@media(max-width:1050px){main{padding:0 16px}.topbar{padding:15px 20px}.topbar nav{gap:12px}.workspace{grid-template-columns:minmax(0,1fr) 292px;gap:15px}.card{padding:18px}.welcome-note{padding:10px 15px}.board-top{padding:15px}.board-top h2{font-size:20px}.view-controls{padding:6px 13px 12px}.board-footer{padding:13px;display:block}.board-footer>span{max-width:100%;display:block}.board-footer>div{margin-top:5px}.legend{gap:9px;padding:8px 13px}.welcome{padding-top:30px}.welcome h1{font-size:48px}}
@media(max-width:760px){.topbar{padding:13px 15px;gap:10px;flex-wrap:wrap}.brand{font-size:21px}.brand-icon{font-size:36px}.topbar nav{width:100%;justify-content:space-between;font-size:11px;gap:5px}.topbar nav .quiet{font-size:11px;padding:5px;min-height:36px}.welcome{padding:28px 3px 21px}.welcome h1{font-size:43px}.welcome p{font-size:14px}.welcome-note{display:none}.eyebrow{font-size:9px;letter-spacing:1.5px}.badges span{font-size:10px}.workspace{display:flex;flex-direction:column;gap:15px}.sidebar{width:100%;display:contents}.board-section{width:100%;order:2}.card{width:100%}#setup,#lobby{order:1}#gameControls{order:1;position:sticky;top:0;z-index:4;border-radius:0 0 13px 13px;padding:13px 17px;box-shadow:0 5px 12px #173d4722}#playgroundControls{order:1}#playersPanel{order:3}#logPanel{order:4}.turn-card h2{font-size:24px;margin:0}.turn-card p{font-size:12px;margin:7px 0}.turn-heading{float:right;gap:10px}.turn-heading .eyebrow{display:none}.die{width:39px;height:39px;font-size:28px}#actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#actions>.primary:first-child{grid-column:1/-1}#actions button{font-size:12px;padding:9px}#actionHelp{margin-bottom:0}.board-top{padding:13px 14px}.board-top h2{font-size:19px}.pill{font-size:10px;padding:5px 8px}.board-window{margin:0 6px;border-width:4px}.view-controls label{margin:0;font-size:10px}.view-controls button{min-height:40px;font-size:10px;padding:6px 9px}.view-controls{gap:4px}.board-footer{font-size:11px}.legend{font-size:10px;gap:7px}main{padding:0 10px}body.playing .workspace{margin-top:10px}.form-row label{font-size:12px}.seat-entry{grid-template-columns:32px minmax(0,1fr) 110px}footer{font-size:9px;gap:5px}.desktop{display:none}#eventLog{max-height:140px}.mode-tabs button{font-size:13px}.card h2{font-size:26px}#setup{padding:21px}.board-section{scroll-margin-top:160px}.extra-modes{grid-template-columns:1fr 1fr}.extra-modes button{font-size:12px}#players{display:grid;grid-template-columns:1fr 1fr;gap:5px}.player-row{padding:8px 3px}.player-row .mouse-badge{width:25px;height:25px}.player-row b{font-size:11px}.cheese-count{font-size:12px}.player-row small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Keep room controls behind the current turn, and mouse badges circular. */
.lobby-player>.mouse-badge{flex:0 0 31px}
#lobby.playing-room{order:2}#gameControls{order:1}#playersPanel{order:3}#logPanel{order:4}
@media(max-width:760px){#lobby.playing-room{order:4}#logPanel{order:5}}
@keyframes tail-wiggle{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
body:not(.playing):not(.playground) #mt-mice g>path:first-of-type{transform-box:fill-box;transform-origin:right center;animation:tail-wiggle 2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){body:not(.playing):not(.playground) #mt-mice g>path:first-of-type{animation:none}}
body.reduced #mt-mice g>path:first-of-type,body.reduced .tiny-gear{animation:none}
