:root{--forest:#173e34;--ink:#203b32;--muted:#778278;--paper:#f5f3e9;--gold:#e5b750;--blue:#3977ac;--red:#bb5140}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,select:focus-visible{outline:3px solid #e5b750;outline-offset:3px}button{transition:background .16s,transform .16s}button:hover:not(:disabled){filter:brightness(1.05)}.masthead{background:var(--forest);color:#faf5df;display:flex;align-items:center;gap:28px;padding:22px max(28px,calc((100vw - 1160px)/2));border-bottom:4px solid #e1b85f}.brand{font-family:Impact,'Arial Black',sans-serif;font-size:28px;line-height:.88;letter-spacing:.7px;text-decoration:none;color:#fff7dc;display:flex;flex-direction:column;transform:rotate(-3deg)}.brand-star{color:var(--gold);padding-left:5px}.header-copy{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#c1cebf}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:800;display:block}.header-copy .eyebrow{color:#eed99a}.header-actions{margin-left:auto;display:flex;gap:10px}.header-actions button{border:1px solid #587365;padding:11px 15px;border-radius:6px;background:transparent;color:#fff7e5}.header-actions .new{background:#e9dcae;border-color:#e9dcae;color:#244236;font-weight:bold}main{max-width:1160px;margin:30px auto 50px;display:grid;grid-template-columns:minmax(0,720px) 300px;gap:36px;padding:0 24px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.section-title .eyebrow{color:#879379}h1{font-family:Georgia,serif;font-weight:normal;font-size:30px;letter-spacing:-1px;margin:5px 0 0}.solo-tag{border:1px solid #d8decf;padding:7px 9px;border-radius:4px;font-size:10px;letter-spacing:1px;font-weight:bold;display:flex;gap:7px;align-items:center}i,.small-dot{background:#7b9b66;border-radius:50%;width:6px;height:6px;display:inline-block}.playerbar{display:flex;align-items:center;gap:11px;min-height:55px}.enemy{margin-bottom:12px}.avatar{background:#f0ded4;border:1px solid #dfc7bb;width:38px;height:38px;display:grid;place-items:center;color:var(--red);font-size:26px;border-radius:50%}.avatar.blue{background:#dfebed;border-color:#c0d4d9;color:var(--blue)}.player-info{display:flex;flex-direction:column;gap:5px}.player-info strong{font-size:13px}.player-info small{color:#7b8378;font-size:11px}.backs{margin-left:auto;display:flex;gap:3px}.back{width:18px;height:24px;background:#b85845;border:2px solid #e5b9a5;border-radius:3px;transform:rotate(-5deg);display:grid;place-items:center;font-size:9px;color:#f4ddd0}.score{margin-left:auto;font-size:19px;font-weight:bold;white-space:nowrap}.score small{font-size:12px;font-weight:normal;color:#7c8479}.red{color:var(--red)}.blue{color:var(--blue)}.enemy .score{margin-left:14px}.score b{color:#c79c3b;padding-right:4px}.board-shell{padding:12px 12px 0;background:#e0d5ac;border-radius:12px;border:1px solid #c8bc90;box-shadow:0 5px 0 #c1b792,0 12px 28px #273d3012}.board{position:relative;aspect-ratio:600/710;background:#a0b77e;border:1px solid #84986b;border-radius:7px;overflow:hidden;box-shadow:inset 0 0 20px #52694e30}.board>svg{display:block;width:100%;height:100%;position:absolute;inset:0}.node{position:absolute;transform:translate(-50%,-50%);width:12.5%;height:13%;border:0;padding:0;background:transparent;isolation:isolate;border-radius:12px}.node .tile{height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 5px 1px #263a3040);pointer-events:none}.node.empty:before{content:'';position:absolute;inset:21% 5% 12%;background:#e7e5cc;border:3px solid #b6bfa0;border-radius:11px;box-shadow:0 3px 0 #758969, inset 0 0 0 3px #f3f0d8;transform:rotate(-2deg)}.node.empty.special:before{background:repeating-linear-gradient(90deg,#d9a966 0 8px,#c9995b 8px 10px);border-color:#8b6340;box-shadow:0 3px 0 #6d6244,inset 0 0 0 3px #efd2a4}.drum-icon{position:relative;font-size:27px;color:#6e4e29;display:block;padding-top:15%}.node.legal:after,.node.target:after{content:'';position:absolute;inset:10% -2% 3%;border:3px dashed #f9f1b1;border-radius:13px;z-index:2;pointer-events:none;background:#fffdad15}.node.legal:hover{transform:translate(-50%,-50%) scale(1.07)}.node.target:after{border-color:#ffbb8a}.node.hq{width:19%;height:12%}.castle{position:absolute;inset:12% 3%;border:3px solid #ddc790;border-radius:10px;background:#cbb586;box-shadow:0 0 0 8px #7babb0,0 0 0 12px #c3cfaa;display:flex;align-items:center;justify-content:center;gap:5px;color:#faf0d4;font-size:30px}.castle span{background:#9d4d3e;padding:0 5px;border-radius:3px;line-height:1.15}.castle small{font-size:10px;font-weight:bold;line-height:1.2;color:#443e2e}.node.hq-blue .castle span{background:#3b6e91}.pile-count{position:absolute;right:0;bottom:12%;border-radius:20px;color:white;background:#183e33;min-width:18px;height:18px;padding:2px;font-size:10px;border:1px solid #e9e7c5;z-index:5}.region{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:2px;color:#ffde6e;background:#3f513a;border:1px solid #c2cc99;border-radius:20px;box-shadow:0 2px 0 #2a3d2e;padding:4px 6px;font-size:13px;font-weight:bold;pointer-events:none}.region.claimed{background:#f1f1dc80;color:#fff;border-color:transparent;box-shadow:none}.region.claimed.p0{color:#2d658d}.region.claimed.p1{color:#a74832}.board-caption{display:flex;justify-content:space-between;padding:10px 3px 9px;font-size:8px;letter-spacing:1.7px;color:#6b7055;font-weight:bold}.self{margin-top:16px}.hand{display:flex;gap:7px;overflow-x:auto;min-height:115px;padding:8px 3px 8px;scrollbar-width:thin}.unit-card{border:1px solid #dcded1;background:#efeee3;border-radius:8px;padding:4px 5px;min-width:63px;flex:1;max-width:89px;display:flex;flex-direction:column;align-items:center;position:relative;color:#34463b}.unit-card img{width:100%;height:83px;object-fit:contain;pointer-events:none}.unit-card span{font-size:10px;font-weight:bold;white-space:nowrap;padding:3px 0}.unit-card:hover{background:#e3e9d5;transform:translateY(-3px)}.unit-card.selected{border:2px solid #3b77a0;background:#d9e7e7;padding:3px 4px;box-shadow:0 0 0 2px #c5d6d8}.hand-footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#838a7d;gap:10px}.text-button{border:0;background:transparent;color:#58745c;padding:7px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}aside{padding-top:3px}.panel{padding:23px;border:1px solid #dfe2d5;background:#fcfbf4;border-radius:8px;margin-bottom:16px}.command{background:#244c3e;color:#f7f2dd;border:0;box-shadow:0 4px 0 #173e34;padding:25px 23px}.command .eyebrow{color:#d9c48b}.command h2{font-family:Georgia,serif;font-size:27px;font-weight:normal;line-height:1.15;margin:13px 0}.command p{line-height:1.65;color:#c7d5c4;font-size:12px}.primary,.secondary{border:0;border-radius:5px;padding:13px 15px;font-weight:bold;font-size:12px;width:100%}.primary{background:#ead7a2;color:#284435}.secondary{background:transparent;border:1px solid #6b8574;color:#efecd9;margin-top:8px}.selected-info{border-top:1px solid #5a7564;margin-top:18px;padding-top:16px;font-size:12px;line-height:1.6}.selected-info strong{color:#f4d37a}.objective .eyebrow{color:#7f8975;margin-bottom:19px}.objective>div{display:flex;gap:12px;align-items:center;margin:16px 0 0}.goal-icon{font-size:26px;color:#496c50;width:23px}.goal-icon.gold{color:#bc963b}.objective p{margin:0;display:flex;flex-direction:column;gap:6px}.objective strong{font-size:12px}.objective small{font-size:10px;line-height:1.5;color:#858c7d}.settings label{font-weight:bold;font-size:12px;display:block;margin-bottom:12px}.settings select{width:100%;border:1px solid #d4d9c8;border-radius:4px;background:#f2f2e8;color:#40563e;padding:10px 7px;font-size:12px}.setting-note{font-size:10px;margin-top:12px;color:#8a907f}.small-dot{margin-right:3px}.special-status{font-size:11px;color:#687c62;border-top:1px solid #e7e9dd;margin-top:15px;padding-top:14px}.journal-title{display:flex;justify-content:space-between;gap:5px}.journal-title .eyebrow{font-size:9px;color:#7a8872}#turn-count{font-size:10px;color:#9c9f8f}.journal{padding:20px}#log{margin:16px 0 0;padding:0;list-style:none;max-height:180px;overflow:auto;font-size:11px;line-height:1.6;color:#8b9181}#log li{padding:9px 0;border-top:1px solid #e9eadf}#log li:first-child{color:#435a40}.credits{font-size:9px;line-height:1.8;color:#939987;text-align:center;margin-top:23px}dialog{border:1px solid #d9dbc7;border-radius:14px;background:#f9f7ec;color:#263e32;padding:28px;max-width:760px;width:calc(100% - 30px);max-height:90vh;box-shadow:0 22px 80px #102c3570}dialog::backdrop{background:#102e2ac2;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.dialog-head h2{font-family:Georgia,serif;font-size:27px;font-weight:normal;margin:10px 0 20px}.dialog-head>button{background:none;border:0;font-size:27px;color:#607365;padding:0 4px}.rules-summary{font-size:13px;line-height:1.65}.unit-guide{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.guide-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:8px;background:#ebeede}.guide-item img{width:58px;height:74px;object-fit:contain}.guide-item p{font-size:11px;line-height:1.5;margin:5px 0 0}.fine-print{font-size:11px;color:#77836e;line-height:1.6}#new-modal,#win-modal{max-width:430px}#new-modal>p{font-size:13px;line-height:1.6;color:#75806d}.check{display:flex;align-items:center;gap:10px;font-size:13px;margin:23px 0}.check input{accent-color:#244c3e}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(100px);background:#244d3f;color:#fff9dd;padding:13px 22px;border-radius:7px;box-shadow:0 4px 20px #18382a30;transition:transform .2s;font-size:13px;z-index:20;max-width:90%;text-align:center}.toast.show{transform:translateX(-50%) translateY(0)}#win-modal{text-align:center;padding:34px}#win-modal h2{font-family:Georgia,serif;font-size:38px;font-weight:normal;margin:16px 0}#win-modal p{line-height:1.6}.victory-star{font-size:65px;color:#cc9f3a;display:block;margin-bottom:12px}.final-score{font-size:22px;margin:24px}.final-score small{font-size:12px}.final-score span{margin:0 20px}#win-modal .text-button{display:block;margin:10px auto 0}#pile-content{display:flex;flex-wrap:wrap;gap:10px}#pile-content figure{margin:0;text-align:center;font-size:11px}#pile-content img{width:80px;height:103px;object-fit:contain}.empty-pile{padding:25px;font-size:14px;color:#7c866e}.inspecting .node{cursor:help}.thinking{animation:breathe 1.5s infinite}@keyframes breathe{50%{opacity:.6}}[hidden]{display:none!important}@media(min-width:1400px){main{grid-template-columns:minmax(0,690px) 310px;max-width:1100px}}@media(max-width:850px){.masthead{padding:17px 20px;gap:20px}.header-copy{display:none}main{gap:20px;padding:0 16px;grid-template-columns:minmax(0,1fr) 265px}.panel{padding:18px}h1{font-size:25px}.unit-card{min-width:55px}.backs{display:none}}@media(max-width:650px){.masthead{padding:17px 16px}.brand{font-size:24px}.header-actions button{padding:9px 11px;font-size:11px}main{display:flex;flex-direction:column;margin:22px auto 30px;padding:0 12px;gap:18px;max-width:510px}.section-title{margin-bottom:13px}h1{font-size:26px}.section-title .eyebrow{font-size:9px}.solo-tag{font-size:9px}.board-shell{padding:7px 7px 0;border-radius:9px}.board-caption{font-size:7px;letter-spacing:1px;padding:9px 1px}.playerbar{min-height:44px}.player-info strong{font-size:12px}.player-info small{font-size:10px}.avatar{width:33px;height:33px;font-size:23px}.score{font-size:17px}.backs{display:flex}.back{width:12px;height:19px;border-width:1px;font-size:7px}.region{font-size:10px;padding:3px 4px}.node.empty:before{border-width:2px}.drum-icon{font-size:20px}.castle{font-size:22px;border-width:2px;box-shadow:0 0 0 5px #7babb0,0 0 0 8px #c3cfaa}.castle small{font-size:7px}.node.legal:after,.node.target:after{border-width:2px}.pile-count{font-size:8px;min-width:15px;height:15px}.hand{gap:5px;min-height:104px}.unit-card{min-width:62px;max-width:80px}.unit-card img{height:70px}.unit-card span{font-size:9px}.hand-footer{font-size:10px;align-items:flex-start}.hand-footer>span{max-width:210px}.self{margin-top:13px}.command{position:relative;padding:19px}.command h2{font-size:24px;margin:8px 0}.command p{margin:7px 0 13px}.command .eyebrow{font-size:9px}.objective{display:none}.panel{margin-bottom:12px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.settings label{margin:0}.setting-note{margin:0;font-size:9px}.special-status{border:0;padding:0;margin:0;font-size:9px}.unit-guide{grid-template-columns:1fr}.guide-item img{width:50px;height:65px}dialog{padding:22px}.dialog-head h2{font-size:25px}.journal{padding:17px}#log{max-height:125px}.credits{margin-top:15px}.selected-info{margin-top:12px;padding-top:11px}}
.node .tile,.unit-card img,.guide-item img,#pile-content img{clip-path:polygon(19% 27%,19% 11%,38% 2%,50% 0%,62% 2%,81% 11%,81% 27%,96% 27%,100% 30%,100% 94%,94% 100%,6% 100%,0% 94%,0% 30%,4% 27%)}
@media(min-width:851px){main{max-width:950px;grid-template-columns:minmax(0,540px) 300px;gap:36px}.masthead{padding-left:max(28px,calc((100vw - 902px)/2));padding-right:max(28px,calc((100vw - 902px)/2))}.header-copy .eyebrow{font-size:9px}.header-copy{font-size:11px}.header-actions button{font-size:12px}.unit-card img{height:75px}.unit-card{min-width:57px}.hand{min-height:105px}}
.mobile-command{display:none}.hand-footer{flex-wrap:wrap}.hand-footer>span{flex:1}
@media(max-width:650px){aside .command{display:none}.mobile-command{display:block;position:sticky;top:0;z-index:12;padding:12px 14px;background:#244c3e;color:#f9efd2;border-radius:6px;margin-bottom:14px;box-shadow:0 3px 8px #173e3420}.mobile-command strong{font-size:14px;font-weight:normal;font-family:Georgia,serif}.mobile-command p{font-size:10px;line-height:1.4;color:#d0dac5;margin:6px 0 0}.mobile-command>div{display:flex;gap:6px;margin-top:8px}.mobile-command>div:empty{display:none}.mobile-command button{padding:9px 7px;font-size:10px}.mobile-command .secondary{margin:0}.hand-footer>span{flex-basis:100%;max-width:none}.hand-footer{gap:0 14px}.hand-footer .text-button{font-size:10px}}

/* Visible throughout the opponent's turn, including chained troop effects. */
.opponent-turn{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:10px;padding:12px 19px;border:1px solid #d9c58d;border-radius:30px;background:#fbf3d8;color:#254738;box-shadow:0 5px 22px #173e3430;font-size:13px;font-weight:bold;white-space:nowrap;pointer-events:none;animation:turn-appear .18s ease-out}
.opponent-turn::before{content:"";width:8px;height:8px;border-radius:50%;background:#bb5140;box-shadow:0 0 0 4px #bb514018;animation:breathe 1.2s infinite}
@keyframes turn-appear{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.opponent-turn,.opponent-turn::before{animation:none}}
[hidden]{display:none!important}
.welcome{background:linear-gradient(128deg,#173e34 0%,#28594a 55%,#447259 100%);color:#fff8e8;padding:clamp(38px,6vw,78px) 24px 54px;position:relative;overflow:hidden}.welcome:after{content:'✦';font-size:clamp(180px,29vw,400px);line-height:1;position:absolute;right:-35px;top:-90px;color:#e8c56817;pointer-events:none}.welcome-inner{max-width:950px;margin:auto;position:relative;z-index:1}.welcome .eyebrow{color:#f0cf83}.welcome h1{font-size:clamp(36px,6vw,68px);max-width:680px;line-height:1.07;letter-spacing:-2px;margin:18px 0}.welcome p{max-width:580px;font-size:clamp(15px,2vw,18px);line-height:1.65;color:#e8eee0}.welcome-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 20px;align-items:center}.welcome-play,.welcome-rules{min-height:49px;padding:14px 20px;border-radius:7px;font-weight:bold;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:13px}.welcome-play{background:#f0ce76;color:#173e34}.welcome-play:hover{background:#ffe199}.welcome-play:focus-visible,.welcome-rules:focus-visible{outline:3px solid #fff;outline-offset:3px}.welcome-rules{background:transparent;border:1px solid #d2dcc6;color:#fff8e8}.welcome small{display:block;color:#d1dfcc;line-height:1.5}#jeu{scroll-margin-top:20px}
@media(max-width:650px){.welcome{padding:38px 20px 40px}.welcome:after{right:-80px;top:10px}.welcome h1{letter-spacing:-1px}.welcome-actions{align-items:stretch;flex-direction:column}.welcome-play,.welcome-rules{width:100%}}
@media(max-width:360px){.masthead{gap:10px}.brand{font-size:22px}.header-actions{gap:5px}.header-actions button{padding:8px 7px;font-size:10px}}
