@charset "UTF-8";
:root{font-family:'Trebuchet MS',Arial,sans-serif;color:#25382a;background:#173c30;font-synthesis:none;--ink:#25382a;--paper:#fff2ce;--green:#24523b;--gold:#f7d77e;--wood:#583822;--muted:#526246;--line:#8b7851}
*{box-sizing:border-box}body{margin:0;min-width:300px;background:radial-gradient(ellipse at 25% 15%,#375f3d 0,transparent 58%),#173c30}button,input,select{font:inherit}button,select,input{min-height:44px}button{border:1px solid #8b7851;border-radius:9px;padding:8px 14px;background:#fff2ce;color:#25382a;font-weight:bold;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){background:#ffe3a2}button:active:not(:disabled){filter:brightness(.93)}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #087ad2;outline-offset:3px}input,select{border:1px solid #80744d;border-radius:7px;background:#fffaf0;color:#25382a;padding:8px 10px;min-width:0}input[type=range]{padding:0;accent-color:#397153;height:44px;cursor:pointer}a{color:inherit}p{line-height:1.45}h1,h2,p{margin-top:0}h2{font-size:22px}.primary{background:#e8bf61;border:2px solid #6e542e;color:#302b1a;box-shadow:0 3px 0 #614523}.primary:hover:not(:disabled){background:#ffdb86}.confirm{background:#2d643e;color:#fff7dc;border:2px solid #173c30}.confirm:hover:not(:disabled){background:#234e30}.quiet{background:transparent;color:inherit}.fine,.credit{font-size:13px;line-height:1.5}.credit{color:#526246;margin:20px 0 0}.fine{margin:10px 0 0}[hidden]{display:none!important}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px max(16px,calc((100vw - 1600px)/2));color:#fff2ce;border-bottom:1px solid #67805b}header nav{display:flex;align-items:center;gap:8px}header nav>button{background:#254c3b;color:#fff2ce;border-color:#9daf7f}header nav>button:hover:not(:disabled){background:#3a6149}.wordmark{font-weight:1000;font-size:39px;line-height:.95;letter-spacing:-2px;text-decoration:none;color:#f7d77e;text-shadow:0 3px #102e23}.wordmark span{color:#c5dc94}.wordmark small{display:block;font-size:10px;letter-spacing:1.1px;color:#fff2ce;margin-top:6px;text-shadow:none}.languages{display:flex;gap:4px}.languages button{padding:5px;width:46px;background:#284c3a;border-color:#7b9568}.languages img{width:30px;height:23px;object-fit:contain;vertical-align:middle}.languages button[aria-pressed=true]{border:2px solid #f7d77e;background:#46633d}#calm[aria-pressed=true]{background:#f7d77e;color:#25382a}#audio-strip{background:#f6e9c7;display:flex;align-items:center;justify-content:center;gap:12px;padding:3px 14px;min-height:50px;font-size:12px;flex-wrap:wrap}#audio-strip label{display:flex;align-items:center;gap:8px}#audio-strip select{min-height:38px;height:38px;font-size:13px;padding:4px 6px}.audio-channel{display:flex;align-items:center;gap:5px}.audio-channel button{font-size:12px;min-width:66px;padding:5px 7px;border-color:#a1926c;background:transparent}.audio-channel input{width:94px}.audio-channel output{width:28px;font-variant-numeric:tabular-nums}#audio-status:empty{display:none}#audio-status{font-size:12px;max-width:190px}#provider{font-size:12px}#audio-retry{font-size:12px;min-height:36px;padding:5px 8px}#connection,#notice{position:fixed;top:10px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);background:#fff2ce;border:2px solid #805b2b;border-radius:9px;padding:12px 18px;z-index:50;box-shadow:0 4px 20px #0004;color:#382b1e}#notice{top:auto;bottom:20px}
main{max-width:1600px;padding:16px;margin:auto;display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:start}.entry{background:#fff2ce;padding:25px 22px;border-radius:16px;border:2px solid #a68a50;box-shadow:0 7px 0 #102d21;grid-row:1/span 3}.entry h1{font-size:36px;line-height:1.1;letter-spacing:-1px;margin-bottom:14px}.entry p{font-size:15px}.entry label{display:block;font-weight:bold;font-size:14px;margin:14px 0 7px}.entry input{width:100%}.entry-buttons{display:flex;gap:8px;margin-top:12px}.entry-buttons button{flex:1;padding:9px 8px}.join-line{display:flex;gap:7px}.join-line input{width:120px;flex:1;text-transform:uppercase}.choose-character{display:flex;align-items:center;gap:12px;width:100%;padding:5px 10px;background:#e2e8c5;border:1px solid #6d824e;text-align:left;margin-bottom:15px}.choose-character .critter{width:72px;height:72px;flex-shrink:0}.choose-character small{display:block;font-weight:normal;font-size:12px;margin-top:5px}.practice-line{display:grid;grid-template-columns:1fr 54px;gap:8px;align-items:center;margin-top:18px;border-top:1px solid #b5a477;padding-top:10px}.practice-line label{font-size:13px;margin:0}.practice-line button{grid-column:1/-1}.practice-line select{padding:5px}#restore{margin-top:14px;width:100%}#game{grid-column:1/-1}.table-line{display:flex;justify-content:space-between;align-items:center;color:#fff2ce;gap:12px;flex-wrap:wrap;margin-bottom:10px}.table-line>div{display:flex;align-items:center;gap:10px}.table-line button{background:#254c3b;color:#fff2ce;border-color:#8b9a6d;font-size:13px;padding:6px 10px}.table-line button:hover:not(:disabled){background:#3c6549}.table-line code{font:700 14px 'Trebuchet MS',sans-serif;background:#112c23;padding:7px 9px;border-radius:6px}#turn-count{font-size:14px}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.player{display:grid;grid-template-columns:62px 1fr;align-items:center;background:#f7ebcc;border:2px solid #708353;border-radius:12px;padding:5px 10px 5px 5px;min-width:0}.player.active{border-color:#f7d77e;background:#ffe6aa;box-shadow:0 0 0 2px #694f29}.player .portrait{border:0;padding:0;background:transparent;min-height:58px;position:relative}.player .critter{width:62px;height:62px}.player .name{display:block;overflow-wrap:anywhere;font-size:15px}.player small{display:block;font-size:11px;margin-top:3px}.player strong.score{font-size:16px}.player .player-actions{grid-column:1/-1;display:flex;gap:6px;align-items:center;font-size:11px}.player-actions button{min-height:32px;padding:4px 8px;font-size:11px}.player .paired{font-size:11px;color:#526246}.lobby{display:flex;justify-content:space-between;gap:20px;padding:15px 20px;margin-top:12px;border:1px solid #9da16c;border-radius:12px;background:#f3e9c6}.lobby h2{margin:0 0 7px}.lobby p{font-size:13px;margin:0}.lobby-options{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.lobby-options label{font-size:12px;display:flex;flex-direction:column;gap:4px}.lobby-options select{max-width:160px}.duel-note{background:#e0e9c5;color:#25382a;padding:9px 15px;border-radius:8px;margin-top:10px;font-size:13px}
.playfield{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;min-width:0}.map-shell{overflow:hidden;background:#244c38;border:2px solid #ad985d;border-radius:17px;box-shadow:0 6px 0 #102d21}.map-heading,.map-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 16px;color:#fff2ce}.map-heading strong{font-size:20px}.map-heading span{font-size:12px}.map{width:100%;aspect-ratio:1000/680;position:relative;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;background:#789150;isolation:isolate;cursor:grab}.map.dragging{cursor:grabbing}.world{width:100%;height:100%;position:absolute;transform-origin:0 0;will-change:transform}.map-art{position:absolute;inset:0;background:url('/assets/woodland-board.webp') center/cover,#789150}.world>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.stone{position:absolute;width:5.8%;height:6.9%;border-radius:45% 55% 43% 57%;background:linear-gradient(145deg,#fff2bc,#d1b57a);border:2px solid #6b6a44;box-shadow:0 4px 0 #7d794f,0 7px 6px #203c2d40;transform:translate(-50%,-50%);display:grid;place-items:center;font-weight:bold;font-size:clamp(11px,1.4vw,21px);color:#3c3822;padding:0;min-width:0;min-height:0;cursor:pointer}.stone.start,.stone.finish{background:#e8bf61;border-color:#59472c;font-size:clamp(8px,1vw,14px);width:8%;height:8.3%}.stone.finish{border:3px solid #72542a}.stone:hover{background:#ffdf8d}.pawn{position:absolute;transform:translate(-50%,-88%);padding:0;border:0;background:none!important;min-height:0;min-width:0;width:clamp(43px,7vw,93px);aspect-ratio:1;z-index:5;transition:left .8s cubic-bezier(.2,.65,.3,1),top .8s cubic-bezier(.2,.65,.3,1);filter:drop-shadow(0 4px 2px #1b302b60);touch-action:manipulation}.pawn .critter{width:100%;height:100%}.pawn.active:after{content:'';position:absolute;width:48%;height:12%;bottom:2%;left:26%;border:3px solid #f7d77e;border-radius:50%;z-index:-1}.pawn:focus-visible{outline-offset:0}.map-footer{padding:5px 12px;font-size:12px}.camera{display:flex;gap:5px}.camera button{min-width:44px;padding:4px 9px;font-size:14px;min-height:36px;background:#173c30;color:#fff2ce;border-color:#8e9e70}.camera button:hover:not(:disabled){background:#3e6548}.board-invitation{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.board-invitation>span{font-size:clamp(22px,3.5vw,44px);text-align:center;line-height:1.15;color:#fff8df;font-weight:bold;text-shadow:0 2px 8px #10291b,0 2px #10291b;background:#163a25cb;border:1px solid #bdc685;padding:18px 28px;border-radius:20px}.board-invitation #welcome-characters{display:flex;margin-top:20px;pointer-events:auto}.welcome-character{width:110px;aspect-ratio:1;background:none!important;border:none;padding:0;filter:drop-shadow(0 6px 3px #172c1c50);min-width:44px}.welcome-character .critter{width:100%;height:100%}.critter{display:inline-block;aspect-ratio:1;background-image:var(--atlas);background-size:300% 200%;background-repeat:no-repeat;background-position:0 0;vertical-align:middle;pointer-events:none}.ladder-panel{background:#fff2ce;border:2px solid #ad985d;border-radius:16px;padding:14px 12px;box-shadow:0 6px 0 #102d21;min-width:0}.ladder-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.ladder-heading h2{font-size:23px;line-height:1.05;margin:0}.ladder-heading button{border-radius:50%;padding:0;min-width:44px;flex:0 0 44px;font-size:19px}.ladder-panel>p{font-size:12px;margin:7px 0 13px;color:#526246}.ladder{display:flex;flex-direction:column;gap:7px}.ledge{min-height:58px;position:relative;background:linear-gradient(#865c37,#624128);border:2px solid #3c2d20;color:#fff2ce;border-radius:7px;box-shadow:0 3px #b09050;display:flex;align-items:center;gap:9px;padding:6px 10px;text-align:left;width:100%}.ledge:hover:not(:disabled){background:linear-gradient(#996d3e,#72502e)}.ledge:disabled{opacity:1}.ledge.empty:disabled{background:linear-gradient(#6b5940,#54432c);color:#eee1bc}.ledge .ledge-number{font-size:28px;font-weight:bold;width:24px;flex-shrink:0}.ledge .ledge-copy{font-size:11px;line-height:1.3}.ledge small{display:block;font-size:10px;font-weight:normal}.ledge .pair-portrait{width:40px;height:40px;flex-shrink:0}.ledge .pair-portrait .critter{width:100%;height:100%}.mini-pair{display:flex;gap:3px;margin-left:auto;align-items:center}.mini-die{display:inline-grid;place-items:center;min-width:26px;height:28px;border:1px solid #4b3828;border-radius:6px;background:var(--die,#ffe6b4);color:#292b20;box-shadow:0 2px #493721;font-size:19px;font-weight:1000;text-shadow:none}.ledge.legal{border:2px dashed #f7d77e}.ledge.selected{outline:3px solid #d8a234;outline-offset:2px;background:#345638;color:#fff7df}.ledge.bump-target{outline:3px solid #ba4f2c;outline-offset:1px}.ledge .empty-label{font-weight:normal;opacity:.85}.ledge.zero{min-height:60px;flex-wrap:wrap}.zero-pairs{display:flex;flex-wrap:wrap;gap:6px}.zero-token{display:flex;align-items:center;gap:3px;font-size:11px}.zero-token .critter{width:25px;height:25px}.zero-token .mini-die{min-width:19px;height:23px;font-size:15px}.roll-area{margin-top:16px;border-top:1px solid #b5a477;padding-top:10px}.tray-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:6px}.tray-heading button{font-size:11px;min-height:32px;padding:4px 7px}#dice-scene{height:155px;width:100%;position:relative;touch-action:pan-y}#dice-scene canvas{width:100%;height:100%;display:block}#dice-fallback{font-size:12px}#dice-fallback button{min-height:35px;font-size:12px}.roll-readout{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 10px}.roll-readout>span{font-size:12px}.roll-readout strong{font-size:34px;color:#294c34;grid-row:span 2;grid-column:2}.roll-readout #roll-note{font-size:11px;line-height:1.4;color:#526246}#pair-choices{display:flex;gap:6px;margin-top:9px}#pair-choices button{font-size:11px;flex:1;padding:6px}#pair-choices button[aria-pressed=true]{background:#d6e6bb;border:2px solid #2d643e}.action-strip{grid-column:1/-1;display:flex;align-items:center;gap:12px;background:#fff2ce;border:2px solid #c9aa58;border-radius:13px;padding:9px 16px;position:sticky;bottom:8px;z-index:15;box-shadow:0 4px 18px #071e2460;min-height:92px}#actor-art{width:68px;height:68px;flex-shrink:0}#actor-art .critter{width:100%;height:100%}.action-copy{flex:1;min-width:0}.action-copy strong{font-size:20px;display:block}.action-copy span{display:block;font-size:13px;line-height:1.4;margin-top:4px}.action-copy #placement-preview{font-weight:bold;color:#275438}.actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:end;align-items:center}.actions button{min-width:100px}#skip{font-size:11px;min-width:0;min-height:32px;padding:5px}.recap{grid-column:1/-1;background:#254c3b;color:#fff2ce;font-size:14px;line-height:1.5;padding:9px 15px;border-radius:9px;border:1px solid #839065;min-height:44px}.recap strong{color:#f7d77e}body.playing main{grid-template-columns:1fr;gap:12px}body.playing .playfield{grid-template-columns:minmax(0,1fr) 300px}body.playing .map{max-height:630px}body.playing #board-invitation{display:none}#turn-reminder{position:fixed;left:50%;top:38%;transform:translate(-50%,-50%);background:#173c30ed;color:#fff2ce;border:3px solid #e8bf61;padding:20px 40px;border-radius:20px;font-size:30px;text-align:center;z-index:22;pointer-events:none;box-shadow:0 10px 40px #0004;max-width:90vw}#turn-reminder small{display:block;font-size:16px;margin-bottom:7px}dialog{border:2px solid #847149;border-radius:17px;background:#fff2ce;color:#25382a;max-width:min(760px,calc(100vw - 24px));width:680px;max-height:calc(100dvh - 40px);padding:22px;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#0c271bcc}.dialog-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #b5a477;margin-bottom:18px;padding-bottom:12px}.dialog-heading h2{margin:0}.dialog-heading button{font-size:24px;min-width:44px;padding:3px}.rules-content p,.rules-content li{font-size:15px;line-height:1.5}.rules-content li{margin-bottom:12px}.rules-content h3{font-size:19px;margin:22px 0 10px}.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.character-option{display:flex;flex-direction:column;align-items:center;padding:6px;font-size:12px;min-width:0}.character-option .critter{width:100%;max-width:125px}.character-option[aria-pressed=true]{background:#d5e4b9;border:2px solid #37633c}.character-option:disabled{opacity:.5}.character-option small{font-weight:normal;font-size:10px}.result-table{border-collapse:collapse;width:100%;font-size:14px}.result-table td,.result-table th{padding:10px 6px;border-bottom:1px solid #b5a477;text-align:left}.result-table .critter{width:50px;height:50px}.history-list{padding-left:23px}.history-list li{margin-bottom:10px;line-height:1.5;font-size:14px}.dice-reference{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.dice-reference .mini-die{width:38px;height:42px;font-size:25px}#celebration{position:fixed;inset:0;background:#123725e8;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#fff2ce;text-align:center;padding:20px}#winner-art{width:min(240px,45vw);aspect-ratio:1}#winner-art .critter{width:100%;height:100%}#winner-label{font-size:clamp(28px,5vw,58px);color:#f7d77e}#winner-reason{font-size:18px;max-width:520px;line-height:1.5}.flying-number{position:absolute;z-index:20;pointer-events:none;background:#fff1c9;border:2px solid #806039;border-radius:8px;padding:5px 9px;font-size:28px;font-weight:bold;color:#2c542d;left:50%;top:50%;transform:translate(-50%,-50%)}.die-bump{position:fixed;pointer-events:none;z-index:25;display:flex;gap:4px}.burst-leaf{position:fixed;pointer-events:none;z-index:31;width:12px;height:7px;border-radius:1px 8px;background:#e8bf61}
.map-shell{display:flex;flex-direction:column}.map-shell .map{flex:1}.map-shell .map-heading,.map-shell .map-footer{flex-shrink:0}#celebration{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
@media(min-width:1400px){main{grid-template-columns:330px minmax(0,1fr)}.playfield{grid-template-columns:minmax(0,1fr) 280px}.map{min-height:470px}.entry{padding-top:30px}body.playing .map{aspect-ratio:1000/610;max-height:680px}.world{min-height:100%}}
@media(max-width:1180px){main{grid-template-columns:290px minmax(0,1fr);gap:12px;padding:12px}.playfield{grid-template-columns:minmax(0,1fr)}body:not(.playing) .ladder-panel{display:none}.entry h1{font-size:31px}body.playing .playfield{grid-template-columns:minmax(0,1fr) 270px}.map-heading{padding:9px 12px}.map-heading strong{font-size:17px}.welcome-character{width:85px}#audio-strip{gap:9px}.audio-channel input{width:80px}}
@media(max-width:820px){header{padding:9px 12px;gap:12px}.wordmark{font-size:32px}.wordmark small{font-size:8px}header nav{gap:5px}header nav>button{font-size:12px;padding:5px 9px}main{grid-template-columns:260px minmax(0,1fr)}.entry{padding:20px 16px}.entry h1{font-size:28px}.entry p{font-size:14px}.map{aspect-ratio:1/1.15}.map-heading{flex-direction:column;align-items:start;gap:4px}.map-art{background-position:65% center}.world #path-art{overflow:visible}.welcome-character{width:65px}#board-tagline{font-size:24px;padding:14px}.map-footer>span{font-size:10px}.map-footer{padding:5px 7px;gap:4px}body.playing .playfield{grid-template-columns:minmax(0,1fr) 245px}body.playing .map{aspect-ratio:1000/800;min-height:450px;max-height:none}.players{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby{flex-direction:column;gap:12px}.lobby-options{align-items:end}.pawn{width:65px}.action-copy strong{font-size:17px}.action-strip{padding:9px 12px}.actions{max-width:300px}.actions button{font-size:13px;min-width:90px}.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){header{padding:8px 10px;gap:5px}.wordmark{font-size:31px}header nav>button{font-size:11px;padding:5px 7px}.languages{gap:2px}.languages button{width:44px}#audio-strip{display:grid;grid-template-columns:1fr 1fr;gap:0 8px;padding:2px 10px;font-size:11px}.source-label{grid-column:1/-1;justify-content:center;height:40px}#source-label{font-size:11px}#audio-strip select{flex:1;max-width:230px;min-height:34px;height:34px}.audio-channel{gap:3px;min-width:0}.audio-channel button{padding:4px;min-width:55px;min-height:44px;font-size:11px}.audio-channel input{width:100%;min-width:25px;flex:1}.audio-channel output{font-size:10px;flex:0 0 25px}.audio-channel:last-of-type{justify-content:end}#audio-status,#provider,#audio-retry{grid-row:3;font-size:11px}#audio-retry{grid-column:2;justify-self:end}.source-label:has(~#audio-status:empty){height:38px}main{display:flex;flex-direction:column;padding:10px;gap:12px}.entry{width:100%;order:1;padding:20px}.entry .welcome h1{font-size:32px}.entry .welcome p{font-size:15px;margin-bottom:17px}.entry form{display:grid;grid-template-columns:92px 1fr;column-gap:14px;align-items:start}.choose-character{grid-row:1/span 3;display:flex;flex-direction:column;gap:0;padding:5px 4px;margin:0;font-size:11px;text-align:center}.choose-character .critter{width:70px;height:70px}.choose-character small{font-size:9px;margin-top:3px}.entry label{margin:2px 0 5px}.entry-buttons{grid-column:2;flex-wrap:wrap;margin-top:9px}.entry-buttons button{font-size:12px;min-width:90px}#join-fields{grid-column:1/-1;margin-top:14px}.practice-line{margin-top:15px;grid-template-columns:1fr 48px 1fr;gap:6px}.practice-line button{grid-column:auto;font-size:12px;min-width:0}.practice-line label{font-size:12px;margin:0}.practice-line select{min-height:44px}.entry .fine{font-size:11px}.entry .credit{font-size:11px;margin-top:12px}.playfield{width:100%;order:0;display:block}.map{aspect-ratio:1000/610;min-height:230px}.world{width:100%;height:100%}.map-art{background-position:center}.map-heading{flex-direction:row;align-items:center;padding:9px 11px}.map-heading strong{font-size:16px}.map-heading span{font-size:10px}#board-tagline{font-size:25px;padding:10px 20px}.welcome-character{width:74px}#welcome-characters{margin-top:8px!important}.map-footer{padding:3px 9px}.map-footer span{font-size:11px}.camera button{min-height:44px}.board-invitation{justify-content:center}.stone{font-size:11px;border-width:1px}.stone.start,.stone.finish{font-size:8px}.pawn{width:51px}.map-footer #board-hint{max-width:170px}#game{order:-2;width:100%}.table-line{gap:8px;margin:0 0 10px;flex-wrap:wrap}.table-line>div{gap:6px;font-size:12px}.table-line>div:first-child{width:100%;justify-content:space-between}.table-line button{font-size:12px;min-height:44px}.table-line code{font-size:12px}.players{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.player{grid-template-columns:46px 1fr;padding:4px 5px;gap:4px;border-radius:9px}.player .portrait{min-height:46px}.player .critter{width:46px;height:46px}.player .name{font-size:13px}.player small{font-size:10px}.player strong.score{font-size:14px}.player .paired{font-size:10px}.lobby{padding:12px}.lobby h2{font-size:20px}.lobby-options{display:grid;grid-template-columns:1fr 1fr}.lobby-options select{width:100%;max-width:none}.lobby-options button{font-size:12px}.lobby-options button#start{grid-column:1/-1;order:3}.lobby-options button#change-character{grid-column:1/-1;order:4}.duel-note{font-size:12px;padding:8px 10px}body.playing main{display:flex}body.playing .playfield{display:flex;flex-direction:column;gap:12px}body.playing .map{min-height:250px;aspect-ratio:1000/680}body.playing .map-heading{padding:9px 11px}.ladder-panel{padding:12px;display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:0 12px;border-radius:13px}.ladder-heading{grid-column:1/-1}.ladder-heading h2{font-size:22px}.ladder-panel>p{grid-column:1/-1;margin:0 0 10px}.ladder{gap:6px}.ledge{min-height:51px;padding:4px 6px;gap:5px}.ledge .ledge-number{font-size:24px;width:17px}.ledge .ledge-copy{font-size:10px}.ledge small{font-size:9px}.ledge .pair-portrait{display:none}.mini-die{min-width:23px;height:26px;font-size:18px}.ledge .mini-pair{gap:2px}.ledge.zero{min-height:51px}.zero-pairs{gap:4px}.zero-token .critter{width:20px;height:20px}.zero-token .mini-die{min-width:18px;font-size:14px}.roll-area{grid-column:2;grid-row:3;margin:0;border:0;padding-top:0;display:flex;flex-direction:column;justify-content:center;align-self:stretch}.tray-heading{flex-wrap:wrap;gap:3px}.tray-heading strong{font-size:12px}.tray-heading button{min-height:32px;padding:3px 6px}#dice-scene{height:153px;min-height:110px}.roll-readout{display:flex;flex-direction:column;gap:5px;align-items:start}.roll-readout strong{font-size:35px}.roll-readout>span{font-size:11px}.roll-readout #roll-note{font-size:10px}#pair-choices{flex-wrap:wrap;gap:5px}#pair-choices button{min-width:100%;min-height:37px;font-size:10px}.action-strip{order:1;width:100%;bottom:5px;padding:9px 10px;display:grid;grid-template-columns:46px 1fr;gap:5px 7px;min-height:110px}#actor-art{width:46px;height:46px}.action-copy strong{font-size:17px}.action-copy span{font-size:12px;margin-top:3px}.actions{grid-column:1/-1;max-width:none;justify-content:start;gap:6px}.actions button{flex:1;min-width:80px;min-height:44px;padding:7px 9px}.actions #skip{flex:0 1 auto;min-width:90px;font-size:10px}.recap{order:2;width:100%;font-size:12px;padding:9px 11px}#turn-reminder{font-size:23px;padding:16px 25px}dialog{padding:16px}.dialog-heading h2{font-size:21px}.character-grid{gap:7px}.character-option{font-size:10px}.rules-content p,.rules-content li{font-size:14px}.result-table{font-size:12px}.result-table td,.result-table th{padding:8px 4px}#winner-reason{font-size:16px}}
@media(max-width:360px){.wordmark{font-size:26px}.wordmark small{font-size:7px}header nav>button{padding:4px 6px;font-size:10px}header nav{gap:3px}.languages img{width:26px}.entry{padding:16px}.entry form{grid-template-columns:82px 1fr;column-gap:10px}.entry-buttons{gap:6px}.ladder-panel{grid-template-columns:minmax(0,1fr) 120px;gap:0 8px}.mini-die{min-width:20px}.ledge .ledge-copy{font-size:9px}.ledge .ledge-number{font-size:21px}#dice-scene{height:140px}.player .name{font-size:12px}.map-footer #board-hint{max-width:130px;font-size:10px}}
.main-stage{min-width:0;display:flex;flex-direction:column;gap:10px}.stage-switch{display:flex;align-items:center;gap:10px;padding:7px 10px;background:#fff2ce;border:1px solid #ad985d;border-radius:11px;min-height:58px}.stage-switch button{font-size:13px;flex-shrink:0}.stage-switch button[aria-pressed=true]{background:#d7e6b9;border:2px solid #2d643e}.stage-switch span{font-size:12px;line-height:1.4;flex:1;overflow-wrap:anywhere}.roll-area#clearing{position:relative;display:flex;flex-direction:column;margin:0;border:2px solid #ad985d;border-radius:17px;padding:14px 18px 8px;min-height:500px;background:linear-gradient(#183e2edb,#173c30f2),url('/assets/woodland-board.webp') center/cover;color:#fff2ce;box-shadow:0 6px 0 #102d21;overflow:hidden}.roll-area#clearing .tray-heading{font-size:22px;min-height:44px}.roll-area#clearing .tray-heading button{font-size:12px;min-height:44px}.roll-area#clearing #dice-scene{height:360px;min-height:280px;flex:1;width:100%;cursor:grab}.roll-area#clearing #dice-scene:active{cursor:grabbing}.clearing-footer{display:flex;align-items:center;gap:12px;min-height:100px;position:relative;background:#fff2ce;color:#25382a;border-radius:13px;padding:6px 14px 6px 3px}.clearing-footer #clearing-character{width:94px;height:94px;flex-shrink:0}.clearing-footer .critter{width:100%;height:100%}.clearing-footer .roll-readout{flex:1;grid-template-columns:1fr auto;gap:6px 12px}.clearing-footer #roll-owner{font-size:17px;font-weight:bold}.clearing-footer #roll-value{font-size:50px}.clearing-footer #roll-note{font-size:13px}.clearing-footer #pair-choices{grid-column:1/-1;margin-top:0;max-width:280px}.clearing-footer #pair-choices:empty{display:none}#ladder-payoff{margin:18px 0 0;font-size:13px;line-height:1.5;border-top:1px solid #b5a477;padding-top:12px}body.playing .map{max-height:none;min-height:450px}body.playing .main-stage .map-shell{flex:1}body.playing .main-stage .map{aspect-ratio:1000/680;flex:1}body:not(.playing) .main-stage{height:100%}.critter{transform-origin:50% 92%;animation:critter-breath var(--breathe,4.5s) ease-in-out infinite}.character-option .critter{animation:none}.pawn:hover .critter,.pawn:focus-visible .critter,.portrait:hover .critter,.portrait:focus-visible .critter{animation-play-state:paused}.critter[data-pose="1"]{animation:critter-wave .7s ease-in-out 2}.critter[data-pose="2"]{animation:critter-surprise .5s ease-out}.critter[data-pose="3"]{animation:critter-cheer .75s ease-in-out 2}.critter[data-pose="4"]{animation:critter-sigh .8s ease-out}.critter[data-pose="5"]{animation:critter-wink .55s ease-in-out}
@keyframes critter-breath{0%,100%{transform:scale(1,1) rotate(-.5deg)}50%{transform:scale(1.018,1.035) rotate(.5deg)}}@keyframes critter-wave{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(-6deg) translateY(-5px)}70%{transform:rotate(5deg) translateY(-2px)}}@keyframes critter-surprise{0%{transform:scale(1)}35%{transform:scale(1.12,.92) rotate(-8deg)}70%{transform:scale(.96,1.08) rotate(6deg)}100%{transform:scale(1)}}@keyframes critter-cheer{0%,100%{transform:translateY(0)}45%{transform:translateY(-12px) rotate(-4deg)}75%{transform:translateY(-5px) rotate(4deg)}}@keyframes critter-sigh{0%{transform:scale(1)}50%{transform:scale(1.05,.93) rotate(-4deg)}100%{transform:scale(1)}}@keyframes critter-wink{0%,100%{transform:rotate(0)}50%{transform:rotate(5deg) scale(1.04)}}
@media(max-width:820px){body.playing .playfield{grid-template-columns:minmax(0,1fr) 240px}.roll-area#clearing{min-height:470px;padding:12px}.roll-area#clearing #dice-scene{height:300px;min-height:260px}.roll-area#clearing .tray-heading{font-size:19px}.clearing-footer #clearing-character{width:70px;height:70px}.clearing-footer #roll-owner{font-size:14px}.clearing-footer #roll-note{font-size:11px}.clearing-footer #roll-value{font-size:40px}.stage-switch{flex-wrap:wrap;gap:6px}.stage-switch span{order:3;flex-basis:100%}}
@media(max-width:620px){body.playing .playfield{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.main-stage{width:100%}.roll-area#clearing{min-height:360px;padding:10px}.roll-area#clearing #dice-scene{height:245px;min-height:210px}.roll-area#clearing .tray-heading{font-size:20px}.clearing-footer{min-height:88px;padding:5px 10px 5px 3px;gap:7px}.clearing-footer #clearing-character{width:74px;height:74px}.clearing-footer .roll-readout{display:grid;grid-template-columns:1fr auto;gap:4px 8px}.clearing-footer #roll-owner{font-size:14px}.clearing-footer #roll-value{font-size:39px}.clearing-footer #roll-note{font-size:11px}.clearing-footer #pair-choices{flex-wrap:nowrap;max-width:none}.clearing-footer #pair-choices button{min-width:0;min-height:44px;font-size:10px}.stage-switch{min-height:54px;display:grid;grid-template-columns:1fr 1fr;padding:5px 8px}.stage-switch button{font-size:12px}.stage-switch span{grid-column:1/-1;order:3;font-size:11px;text-align:center}.ladder-panel{display:block;padding:12px}.ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ledge{min-height:72px;flex-wrap:wrap;align-content:center;padding:7px;gap:4px}.ledge .ledge-number{width:22px;font-size:25px}.ledge .ledge-copy{font-size:10px;flex:1}.ledge .mini-pair{margin-left:0;justify-content:center;width:100%}.ledge small{font-size:9px}.ledge.zero{min-height:72px}.ledge .pair-portrait{display:none}#ladder-payoff{font-size:11px;margin-top:11px;padding-top:8px}.ladder-panel>p{font-size:12px}.map-shell .map{min-height:250px!important;aspect-ratio:1000/680!important}.ladder-panel .ladder-heading h2{font-size:21px}body.playing .pawn{width:55px}.map-heading{flex-wrap:wrap}.map-heading span{font-size:11px}.camera button{min-height:44px}.roll-area#clearing #dice-fallback{font-size:12px;margin-top:8px}.roll-area#clearing #retry3d{min-height:44px}}
#audio-strip select,#audio-retry,.camera button,.tray-heading button,#pair-choices button,.player-actions button{min-height:44px}#audio-strip select{height:44px}.player-actions button{min-width:44px}.stone{cursor:default}.stage-switch button:focus-visible{outline-offset:2px}
.pawn{transition-duration:1.5s}body.playing .pawn{transition-timing-function:cubic-bezier(.22,.65,.3,1)}#clearing #dice-scene{touch-action:none}
#skip{min-height:44px}body.away .critter{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.calm *,body.calm *:before,body.calm *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
