@font-face{font-family:Kalam;font-weight:400;font-display:swap;src:url('fonts/kalam-latin-400-normal.woff2')}@font-face{font-family:Kalam;font-weight:700;font-display:swap;src:url('fonts/kalam-latin-700-normal.woff2')}@font-face{font-family:Outfit;font-weight:100 900;font-display:swap;src:url('fonts/outfit-latin-wght-normal.woff2')}
:root{--paper:#FCFBF6;--ink:#1E1E24;--graphite:#4B4B55;--muted:#6E6E7A;--pencil:#8d8d96;--yellow:#FFD60A;--hl:rgb(255 214 10 / 48%);--blue:#2F6BFF;--red:#b42318;--sk:18px 7px 16px 9px / 9px 16px 7px 18px;--hand:Kalam,'Comic Sans MS',cursive;--body:Outfit,system-ui,sans-serif;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font:400 16px/1.45 var(--body);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-image:radial-gradient(#a69f8b22 .6px,transparent .6px);background-size:7px 7px}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}h1,h2,p{margin:0}h1,h2{font-family:var(--hand);line-height:1.13}h2{font-size:38px}::selection{background:var(--hl)}
#app{min-height:100dvh;display:grid;place-items:center;padding:26px max(20px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.screen{width:100%;min-width:0}.menu{max-width:390px;display:flex;flex-direction:column;gap:22px;margin:auto;animation:arrive .25s ease both}.menu h2{text-align:left}.eyebrow{font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}#home{text-align:center;gap:10px}.cover{width:270px;height:170px;max-width:100%;align-self:center;margin:12px 0 1px}h1{font-size:86px;letter-spacing:-3px;font-weight:700;line-height:1.05}.title-dot,.wordmark span{color:var(--red)}.highlight{background:linear-gradient(transparent 63%,var(--hl) 63%,var(--hl) 89%,transparent 89%);padding:0 .05em}.tagline{font:400 22px var(--hand);margin-top:6px}.intro{font-size:15px;color:var(--muted);margin:2px 0 14px}.menu-actions{display:grid;gap:14px}.btn{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 18px;border:2px solid var(--ink);border-radius:var(--sk);box-shadow:3px 3px 0 var(--ink);background:var(--paper);font-weight:550;transition:transform .12s,box-shadow .12s}.btn.primary{background:var(--yellow)}.btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.menu-actions .btn{justify-content:space-between}.button-icon{font:24px var(--hand)}.text-btn{min-height:44px;padding:8px 10px;border:0;background:transparent;text-underline-offset:4px}.text-btn:hover:not(:disabled){text-decoration:underline}.text-btn.small{font-size:12px;min-height:44px}.fine{font-size:12px;color:var(--muted)}#home-note{margin-top:5px;min-height:18px}.subtext,.note{font-size:15px;color:var(--graphite)}.error{color:var(--red);font-size:14px;min-height:0}.error:empty{display:none}.back,.icon-btn{width:44px;height:44px;flex:none;display:grid;place-items:center;border:1.5px solid #b1aca2;border-radius:10px 5px 8px 6px;background:var(--paper);font:700 24px var(--hand)}.back{margin-bottom:4px}.back:hover,.icon-btn:hover{background:var(--hl)}
fieldset{border:0;padding:0;margin:0;min-width:0}legend,label{display:block;font-size:13px;font-weight:550;margin-bottom:9px}.choices{display:grid;gap:10px}.choices button{min-height:58px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border:1.5px solid #b6b1a6;border-radius:var(--sk);background:transparent;font-weight:600}.choices button span{font-size:12px;font-weight:400;color:var(--muted)}.choices button[aria-pressed=true]{border:2px solid var(--ink);background:#fff;box-shadow:2px 2px 0 var(--ink)}.choices button[aria-pressed=true]::before{content:'✓';margin-right:10px}.choices button[aria-pressed=true] span{margin-left:auto}.segmented{display:flex;border:1.5px solid #aaa499;padding:4px;border-radius:var(--sk);gap:4px}.segmented button{flex:1;min-height:44px;background:transparent;border:0;border-radius:7px;font-size:14px}.segmented button[aria-pressed=true]{background:#ebe8df;font-weight:600}#setup .fine{text-align:center}.divider{display:flex;gap:12px;align-items:center;font:16px var(--hand);color:var(--muted)}.divider::before,.divider::after{content:'';height:1px;background:#cdc8bc;flex:1}#online-fields{display:grid;gap:12px;text-align:left}#online-fields label{margin:0}input{width:100%;min-width:0;height:52px;border:1.5px solid #8d887d;border-radius:var(--sk);background:#fff;padding:0 14px;font-size:16px}.join-row{display:flex;gap:10px}.join-row .btn{width:76px}.room-code{font:700 48px var(--hand);letter-spacing:.15em;text-align:center;border:2px dashed var(--pencil);border-radius:var(--sk);background:#fff;padding:17px 10px 9px;user-select:all}.menu .note{text-align:center}

body.playing #app{height:100dvh;min-height:0;padding:0;overflow:hidden}.game{height:100%;max-width:1100px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:48px 68px minmax(0,1fr);grid-template-areas:'header header' 'board players' 'board controls';gap:20px 40px;padding:18px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));position:relative}.game-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d5d0c4;padding-bottom:9px}.game-header>.text-btn{font-size:13px;padding-left:0}.wordmark{font:700 30px var(--hand);letter-spacing:-1px}.header-tools{display:flex;gap:8px}.header-tools .icon-btn{border:0;font-size:23px}.player-strip{grid-area:players;display:grid;grid-template-columns:1fr 1fr;gap:10px}.player-card{position:relative;display:flex;gap:9px;align-items:center;min-width:0;padding:9px;border:1.5px solid #c2bdb0;border-radius:var(--sk);transition:background .2s,border-color .2s}.player-card.now{border-color:var(--ink);background:#fff9d5;box-shadow:2px 2px 0 #1e1e2420}.red{--piece:var(--red)}.blue{--piece:var(--blue)}.mini-piece{width:13px;height:13px;flex:none;border:2px solid var(--piece);border-radius:50%;background:repeating-linear-gradient(40deg,transparent 0 2px,var(--piece) 2px 3px)}.player-info{min-width:0;flex:1}.player-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550}.supply{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;row-gap:4px;margin-top:6px;font-size:10px;color:var(--muted)}.ticks{display:inline-flex;gap:2px}.ticks i{display:block;width:3px;height:10px;border-radius:2px;background:var(--piece);transform:rotate(-4deg)}.ticks i.used{opacity:.13}.turn-dot{position:absolute;top:-11px;right:8px;display:none;font-size:17px;background:var(--paper);padding:0 4px}.now .turn-dot{display:block}.board-area{grid-area:board;min-height:0;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;container-type:size;gap:7px}.goal-label{font:400 13px var(--hand);color:var(--red);height:22px;flex:none;letter-spacing:.03em}.goal-label.bottom{color:#345ba3}.board-shell{width:min(100cqw,100cqh - 58px,680px);height:min(100cqw,100cqh - 58px,680px);flex:none;border:1.5px solid #969082;border-radius:15px 7px 12px 9px;padding:6px;box-shadow:3px 4px 0 #b2ac9b40;background:var(--paper)}.board{width:100%;height:100%;position:relative;isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:none}.cells{position:absolute;inset:0;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr)}.cell{margin:6.5%;padding:0;border:1px solid #c5bead77;border-radius:7px 4px 6px 3px;background:#e9e5db50;position:relative;min-width:0;min-height:0;opacity:1!important}.cell:nth-child(2n){border-radius:4px 7px 4px 6px}.cell.top{background:#b423180b;border-color:#b423181c}.cell.bottom{background:#2f6bff0b;border-color:#2f6bff1c}.cell.legal{border:1.5px solid #70664b;background:#fff7d3;cursor:pointer}.cell.legal::after{content:'';position:absolute;width:13%;height:13%;left:43.5%;top:43.5%;background:#867c61;border-radius:50%}.cell.last{box-shadow:inset 0 0 0 2px #bcb29a66}.cell:focus-visible{outline-offset:0;z-index:4}.cell:hover.legal{background:var(--hl)}.pawn{position:absolute;width:11.111111%;height:11.111111%;display:grid;place-items:center;pointer-events:none;z-index:3;transition:transform .2s cubic-bezier(.2,.75,.3,1);will-change:transform}.pawn span{display:block;width:54%;height:54%;border:2.5px solid var(--piece);border-radius:48% 52% 45% 55%;background:repeating-linear-gradient(35deg,transparent 0 3px,var(--piece) 3px 4px);box-shadow:inset 0 0 0 3px var(--paper);position:relative}.pawn span::after{content:'';position:absolute;inset:-4px -3px -3px -4px;border:1px solid var(--piece);border-radius:51% 46% 52% 48%;opacity:.4;transform:rotate(12deg)}.board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.board #wall-layer{z-index:2}.board #preview-layer{z-index:5}.wall-ink{fill:none;stroke-linecap:round;stroke-linejoin:round}.wall-shadow{stroke:var(--paper);stroke-width:19}.wall-main{stroke:var(--ink);stroke-width:11}.wall-grain{stroke:#aaa18b;stroke-width:1.5}.wall-end{fill:var(--piece)}.preview{opacity:.8}.preview .wall-main{stroke:var(--red);stroke-dasharray:15 7}.preview.valid .wall-main{stroke:#476e33;stroke-dasharray:17 6}.preview .wall-shadow{stroke:#fff2ba;stroke-width:28}.anchors{position:absolute;inset:5.5556% 5.5556% 5.5556% 5.5556%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);z-index:6}.anchor{border:0;background:transparent;min-width:0;min-height:0;position:relative;padding:0}.anchor::after{content:'+';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#58513b80;font:18px var(--body)}.anchor:hover::after,.anchor:focus-visible::after{color:var(--ink);background:var(--hl);border-radius:50%}.board.wall-mode .cell.legal{border-color:#c5bead77;background:#e9e5db50}.board.wall-mode .cell.legal::after{display:none}.board.wall-mode .pawn{opacity:.55}
.controls{grid-area:controls;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:14px 3px 8px}.turn-copy h2{font-size:32px;margin:6px 0}.turn-copy p{font-size:13px;line-height:1.4;color:var(--graphite);min-height:36px}.move-modes{display:flex;gap:6px;padding:5px;background:#eeeae080;border:1px solid #cdc6b6;border-radius:var(--sk)}.move-modes button{border:1px solid transparent;border-radius:8px 4px 7px 5px;background:transparent;min-height:54px;flex:1;font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px 3px}.move-modes button[aria-pressed=true]{background:var(--paper);border-color:var(--ink);box-shadow:1px 1px 0 var(--ink)}.move-modes button>span:not(.wall-icon){font-size:23px;line-height:15px;font-weight:600}.wall-icon{width:24px;height:5px;background:var(--ink);border-radius:4px;display:block;margin:5px 0}.wall-icon.vertical{transform:rotate(90deg);width:19px}.nudge-row{display:flex;gap:6px;margin-top:12px}.nudge-row button{height:44px;min-width:44px;flex:1;border:1px solid #b3ab99;border-radius:7px;background:var(--paper);font-size:19px}.draft-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.draft-actions .btn{min-height:46px;flex:1}.notice{font-size:12px;color:var(--red);min-height:0}.notice:empty{display:none}.game-actions{display:flex;justify-content:space-between;border-top:1px solid #d5d0c4;padding-top:8px;margin-top:auto;font-size:13px}.keyboard-hint{font-size:11px;line-height:1.7;color:var(--muted);margin-top:0}.move-pad{margin-top:12px}#move-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}#move-options button{min-width:55px;min-height:46px;flex:1;background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--sk);font-size:17px}.move-pad p{margin-bottom:5px}#result{display:grid;gap:15px}#result-note{font-size:14px}.paused{position:absolute;inset:0;z-index:20;background:#fcfbf6eF;display:grid;place-items:center;padding:30px;text-align:center}.paused>div{display:grid;gap:20px;max-width:320px}
dialog{color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:var(--sk);box-shadow:5px 6px 0 #1e1e2440;max-width:min(500px,calc(100vw - 28px));width:100%;max-height:calc(100dvh - 30px);padding:30px;overflow-y:auto}dialog::backdrop{background:#24221c66;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:12px;top:12px;border:0}dialog h2{font-size:36px;margin:12px 0 20px}.rules-list{margin:0;padding:0 0 0 24px;display:grid;gap:16px}.rules-list li{padding-left:6px}.rules-list li::marker{font:700 22px var(--hand)}.rules-list strong,.rule-tip strong{font-size:15px}.rules-list p,.rule-tip p{font-size:13px;color:var(--graphite);margin-top:4px}.rule-tip{padding:14px;border:1px dashed #b7af9e;border-radius:var(--sk);margin:24px 0;background:#fff9df}.confirm-actions{display:flex;gap:12px;margin-top:25px}
@media(min-width:850px){.player-strip{grid-template-columns:1fr;gap:9px;align-self:start}.game{grid-template-rows:48px 145px minmax(0,1fr)}.player-card{padding:13px}.player-info strong{font-size:15px}.supply{font-size:11px;flex-wrap:nowrap}.ticks i{height:13px;width:4px}.controls{padding-top:4px}}
@media(max-width:849px) and (orientation:portrait), (max-width:650px){
  .game{max-width:560px;grid-template-columns:1fr;grid-template-rows:42px 58px minmax(180px,1fr) auto;grid-template-areas:'header' 'players' 'board' 'controls';gap:10px;padding:6px max(12px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.game-header{padding-bottom:4px}.wordmark{font-size:26px}.player-strip{gap:8px}.player-card{padding:8px 9px}.player-info strong{font-size:13px}.supply{font-size:10px;flex-wrap:nowrap;gap:7px}.ticks{gap:2px}.ticks i{height:9px;width:3px}.board-area{gap:2px}.goal-label{height:16px;font-size:11px;line-height:16px}.board-shell{width:min(100cqw,100cqh - 36px);height:min(100cqw,100cqh - 36px);padding:4px}.controls{overflow:visible;gap:6px;padding:0 2px 2px}.turn-copy{text-align:center}.turn-copy .eyebrow{display:none}.turn-copy h2{font-size:23px;margin:0}.turn-copy p{font-size:12px;min-height:18px;margin:2px 0 6px}.move-modes{padding:3px;gap:4px}.move-modes button{flex-direction:row;gap:9px;min-height:46px;font-size:12px}.wall-icon{width:21px;height:4px}.wall-icon.vertical{width:17px}.game-actions{padding-top:0;margin-top:0;min-height:40px}.game-actions .text-btn{min-height:40px;font-size:12px}.keyboard-hint{display:none}.controls #large-controls{display:block;width:100%;min-height:30px;padding:6px;font-size:11px}.notice{text-align:center;font-size:11px}.nudge-row{margin-top:8px;gap:8px}.draft-actions{margin-top:8px}.draft-actions .btn{min-height:44px}.draft-actions .text-btn{min-height:44px}.move-pad{margin-top:4px}.move-pad p{display:none}#move-options{margin-top:0}#result{gap:8px;text-align:center}#result .btn{min-height:46px}#result-note{font-size:12px}.game:has(#draft-tools:not([hidden])) #large-controls{display:none}.game:has(#draft-tools:not([hidden])) .goal-label.bottom{display:none}.game:has(#draft-tools:not([hidden])) .board-shell{width:min(100cqw,100cqh - 20px);height:min(100cqw,100cqh - 20px)}
}
@media(max-height:640px) and (orientation:portrait){.game{gap:5px;grid-template-rows:36px 48px minmax(140px,1fr) auto}.game-header,.header-tools .icon-btn{height:36px}.player-card{padding:5px 8px}.supply{margin-top:3px}.turn-copy h2{font-size:20px}.game-actions{min-height:32px}.game-actions .text-btn{min-height:32px}.controls #large-controls{min-height:24px;padding:2px}.goal-label{display:none}.board-shell,.game:has(#draft-tools:not([hidden])) .board-shell{width:min(100cqw,100cqh - 3px);height:min(100cqw,100cqh - 3px)}.move-modes button{min-height:44px}}
@media(orientation:landscape) and (max-height:550px){.game{max-width:1000px;grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:38px 54px minmax(0,1fr);grid-template-areas:'header header' 'board players' 'board controls';gap:8px 20px;padding:5px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}.game-header{padding:0}.controls{gap:4px;padding:0 2px;overflow:auto}.turn-copy .eyebrow,.keyboard-hint,.goal-label{display:none}.turn-copy h2{font-size:24px;margin:0}.turn-copy p{font-size:11px;min-height:16px;margin:3px 0 6px}.board-shell{width:min(100cqw,100cqh - 6px);height:min(100cqw,100cqh - 6px)}.player-strip{grid-template-columns:1fr 1fr;gap:7px}.player-card{padding:6px}.player-info strong{font-size:12px}.supply{margin-top:3px;font-size:9px;gap:4px;flex-wrap:nowrap}.ticks{gap:1px}.ticks i{height:8px;width:2px}.mini-piece{width:10px;height:10px}.move-modes button{min-height:44px;flex-direction:row;font-size:10px;gap:4px}.game-actions{padding:0}.game-actions .text-btn,#large-controls{min-height:30px;padding:3px;font-size:11px}.nudge-row{margin-top:6px;gap:4px}.nudge-row button{min-width:40px}.draft-actions{margin-top:5px}.draft-actions .btn{min-height:44px}.notice{font-size:11px}}
/* While adjusting a wall on a short phone, give the board the space normally used by secondary actions. */
@media(max-width:650px) and (max-height:740px) and (orientation:portrait){
  .game:has(#draft-tools:not([hidden])){grid-template-rows:0 50px minmax(180px,1fr) auto;row-gap:5px}
  .game:has(#draft-tools:not([hidden])) .game-header,.game:has(#draft-tools:not([hidden])) .game-actions,.game:has(#draft-tools:not([hidden])) .goal-label{display:none}
  .game:has(#draft-tools:not([hidden])) .board-shell{width:min(100cqw,100cqh - 4px);height:min(100cqw,100cqh - 4px)}
  .game:has(#draft-tools:not([hidden])) .turn-copy h2{font-size:20px}
  .game:has(#draft-tools:not([hidden])) .turn-copy p{margin:0 0 3px;font-size:11px}
}
.board.rotated .cell.top{background:#2f6bff0b;border-color:#2f6bff1c}.board.rotated .cell.bottom{background:#b423180b;border-color:#b423181c}
.cell::before{content:attr(data-coordinate);position:absolute;left:3px;bottom:1px;font:9px var(--body);color:#6e685b;opacity:0;pointer-events:none}.cell.legal::before,.cell:focus-visible::before{opacity:.75}.board.wall-mode .cell::before{opacity:0}
body.playing{height:100dvh;overflow:hidden}body.playing #app{display:block}
@media(hover:none){.keyboard-hint{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@keyframes arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
/* Shared board geometry keeps classic and crown race on the same input grid. */
.cells{grid-template-columns:repeat(var(--size,9),1fr);grid-template-rows:repeat(var(--size,9),1fr)}
.pawn{width:calc(100% / var(--size,9));height:calc(100% / var(--size,9))}
.anchors{inset:calc(50% / var(--size,9));grid-template-columns:repeat(calc(var(--size,9) - 1),1fr);grid-template-rows:repeat(calc(var(--size,9) - 1),1fr)}
.wall-main{stroke:var(--wall-color,var(--ink))}.wall-grain{stroke:var(--paper);opacity:.4}
.gold{--piece:#ab7b00}.green{--piece:#20814c}
#crown{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(18px,3vw,34px);line-height:1;color:#9e7300;pointer-events:none;z-index:1}
.hill-settings{display:grid;gap:18px}.hill-settings .fine{text-align:left!important}
#mode-h,#mode-v{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
#mode-h:active,#mode-v:active{cursor:grabbing}.wall-icon{background:var(--active-piece,var(--ink))}
.dragging-wall .anchor::after{content:'';width:9px;height:9px;border:1px solid #9a8c65;background:#fff9d3;border-radius:50%}
.dragging-wall .pawn{opacity:.65}.dragging-wall .anchors{pointer-events:none}
.turn-clock{float:right;font:700 28px var(--body);font-variant-numeric:tabular-nums;background:#fff2b3;border-radius:8px;padding:3px 10px;line-height:1.2}.turn-clock.urgent{color:var(--red);background:#b4231810}
.hill .player-strip{grid-template-columns:1fr 1fr}.hill .player-card{padding:10px 8px}.hill .player-info strong{font-size:12px}.hill .ticks{gap:2px}.hill .ticks i{width:3px}.hill .supply{font-size:10px;gap:4px}.hill .mini-piece{width:10px;height:10px}.hill .player-card{gap:6px}
@media(min-width:850px){.game.hill{grid-template-rows:48px 154px minmax(0,1fr)}}
@media(max-width:849px) and (orientation:portrait), (max-width:650px){
 .game.hill{grid-template-rows:42px 58px minmax(180px,1fr) auto;padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right));gap:8px}
 .hill .player-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.hill .player-card{padding:7px 5px}.hill .mini-piece{display:none}.hill .player-info strong{font-size:11px}.hill .supply{flex-wrap:wrap;font-size:9px;gap:3px}.hill .ticks i{height:7px;width:3px}.hill .turn-dot{right:4px;font-size:13px;top:-8px}
 .turn-clock{font-size:20px;padding:2px 8px;margin-right:7px}.move-modes #mode-move{display:none}.move-modes{gap:12px;border:0;background:none;padding:2px 18px}.move-modes button{border:1.5px solid #b8af9e;background:var(--paper);min-height:52px;gap:14px;font-size:13px}.wall-icon{width:35px;height:5px}.wall-icon.vertical{width:25px}
 .hill .goal-label{font-size:11px}.hill #goal-bottom{color:var(--muted)!important}
}
@media(max-width:650px) and (max-height:740px) and (orientation:portrait){
 .game.hill{grid-template-rows:32px 46px minmax(180px,1fr) auto;gap:4px;padding-top:3px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
 .hill .game-header,.hill .header-tools .icon-btn{height:32px}.hill .player-card{padding:4px}.hill .supply{margin-top:3px}.hill .turn-copy p{display:none}.hill .turn-copy h2{font-size:21px}.hill .controls{gap:3px}.hill .move-modes button{min-height:44px}.hill .controls #large-controls{min-height:24px;padding:2px}.hill .game-actions,.hill .game-actions .text-btn{min-height:32px;padding:2px}.hill .goal-label{height:14px;line-height:14px}.hill .board-shell{width:min(100cqw,100cqh - 32px);height:min(100cqw,100cqh - 32px)}
}
.fence .wall-shadow{stroke-width:26}.fence-rails{stroke:var(--wall-color);stroke-width:4.5}.fence-posts{stroke:var(--wall-color);stroke-width:3.6}.fence-scratch{stroke:var(--wall-color);stroke-width:1;opacity:.55}.fence.preview{opacity:.7}.fence.preview .fence-rails,.fence.preview .fence-posts{stroke:var(--red)}.fence.preview.valid .fence-rails,.fence.preview.valid .fence-posts{stroke:var(--wall-color)}.fence.preview .wall-shadow{stroke:#ffedaa;stroke-width:30}
#crown{width:calc(80% / var(--size,9));height:calc(80% / var(--size,9));object-fit:contain;z-index:2;filter:drop-shadow(0 1px 0 #97844544)}
.hill .cell[data-r="5"][data-c="5"]{background:#ffdf4c42;border-color:#c1a547;box-shadow:inset 0 0 0 1px #fff9d0}

/* Embedded player supplies navigation; the game uses the remaining space. */
.game,.game.hill{grid-template-rows:154px minmax(0,1fr);grid-template-areas:'board players' 'board controls'}
.pawn{display:block;color:var(--piece)}.pawn>svg{position:static;display:block;width:100%;height:100%}
.game-actions{justify-content:space-between;border-top:1px solid #d8d2c5;margin-top:12px;padding-top:8px}#resign{margin-left:auto;color:var(--muted)}
#grabbed-wall{position:fixed;pointer-events:none;z-index:1000;border-top:2.6px solid currentColor;border-bottom:2.6px solid currentColor;background:repeating-linear-gradient(90deg,transparent 0 23%,currentColor 23% 25%);opacity:.85}
.anchor::after{display:none}
@media(max-width:849px){.game,.game.hill{grid-template-rows:58px minmax(180px,1fr) auto;grid-template-areas:'players' 'board' 'controls'}.game-actions{margin-top:3px;padding-top:3px}}
@media(orientation:landscape) and (max-height:550px){.game,.game.hill{grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:65px minmax(0,1fr);grid-template-areas:'board players' 'board controls'}}

/* Lobby and board refinements. */
#home{max-width:460px;gap:12px}.lobby-choices{display:flex;flex-direction:column;gap:13px;margin-top:22px}.play-choice{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 20px;min-height:88px;background:#fffdf8;transition:transform .15s,box-shadow .15s}.play-choice>span:nth-child(2){flex:1}.play-choice strong{display:block;font-weight:600;font-size:17px}.play-choice small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.play-choice:first-child{background:#fff3bc}.play-choice:hover{transform:translateY(-2px);box-shadow:4px 5px 0 #1e1e24}.choice-symbol{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid #bfb6a0;border-radius:12px 7px;background:#fcfbf6;font:25px var(--hand)}
.cell{margin:10%}.mini-piece{border-radius:3px;background:repeating-linear-gradient(35deg,transparent 0 2px,var(--piece) 2px 3px)}.player-card.now{background:#fff5c9;box-shadow:inset 3px 0 0 var(--piece),2px 2px 0 #1e1e2414}.game-actions{flex-wrap:wrap;gap:8px}#lobby-back{margin-right:auto}.controls{align-self:start}.turn-copy{padding:10px 0 14px}.turn-copy h2{line-height:1.2}.board-shell{box-shadow:3px 4px 0 #b2ac9b30}
@media(hover:hover) and (pointer:fine){.move-modes{display:none!important}}
@media(max-width:849px){.turn-copy{padding:5px 0}.play-choice{padding:15px 16px;min-height:80px}.play-choice strong{font-size:16px}#home .cover{height:135px;width:230px}#home h1{font-size:70px}.game-actions{min-height:44px}.game-actions .text-btn{min-height:44px;padding:6px 9px}.controls{align-self:stretch}}
/* Quiet, empty placeholders for available moves. */
.cell.legal{border:1.5px solid #73737b99;background:#66666e0b}.cell:hover.legal{border-color:#53535dcc;background:#66666e18}.cell.legal::after,.cell.legal::before,.cell:focus-visible::before{display:none}.board.wall-mode .cell.legal{border-color:#c5bead77;background:#e9e5db50}
