:root{--bg:#f3eee4;--panel:#fffdf8;--ink:#2a2520;--muted:#776e63;--line:#ddd3c2;--accent:#8a3b12;--sea:#dce8ec;color:var(--ink);background:var(--bg);font-family:Avenir Next,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}h1,h2{margin:0;font-weight:650}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.82rem}p{margin:0 0 .6rem;line-height:1.4}.hint{color:var(--muted);font-size:.85rem}.error{color:#a4201a;margin-top:.5rem;font-weight:600}button{font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:.45rem .8rem}button:hover:not(:disabled){border-color:var(--ink)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.link{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}button:focus-visible,input:focus-visible,.token:focus-visible{outline-offset:2px;outline:3px solid #1b6fd1}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row.between{justify-content:space-between}.dot{vertical-align:-1px;border-radius:50%;width:.75rem;height:.75rem;margin-right:.4rem;display:inline-block}.dot.big{width:1.1rem;height:1.1rem}.newgame{max-width:34rem;margin:0 auto;padding:2.5rem 1rem 3rem}.newgame h1{letter-spacing:-.01em;font-size:2.4rem}.newgame .lede{color:var(--muted);margin-bottom:1.6rem}.newgame section{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:.9rem;padding:1rem}.newgame h2{margin-bottom:.7rem}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{border:0;border-radius:0;min-width:2.6rem}.seg button.on{background:var(--ink);color:#fff}.names{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem;margin-top:.8rem;display:grid}.names label{align-items:center;display:flex}.names input{font:inherit;border:1px solid var(--line);border-radius:6px;width:100%;padding:.4rem .5rem}.radio{cursor:pointer;align-items:baseline;gap:.6rem;padding:.25rem 0;display:flex}button.big{width:100%;padding:.8rem;font-size:1.05rem}.game{grid-template-columns:minmax(0,1fr) 22rem;height:100vh;display:grid}.mapwrap{background:var(--sea);flex-direction:column;min-height:0;display:flex}.board{flex:1;width:100%;min-height:0}.legend{background:#fff9;flex-wrap:wrap;gap:.4rem;padding:.5rem .75rem;font-size:.78rem;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;padding:.15rem .55rem}.chip .dot{margin:0 0 0 .35rem}.region-north{background:#cfe0f1}.region-gangetic{background:#f5e6b5}.region-west{background:#f3d2bd}.region-central{background:#d6e6c6}.region-south{background:#ecd0e1}.region-northeast{background:#c4e9e2}.side{border-left:1px solid var(--line);flex-direction:column;gap:.65rem;padding:.75rem;display:flex;overflow-y:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.75rem}.panel h2{margin-bottom:.4rem}.controls>button,.controls>.row{margin-top:.3rem}.controls>button+button{margin-left:.4rem}.controls input[type=range]{width:100%;margin:.2rem 0 .6rem}.turn{background:var(--panel);border:1px solid var(--line);border-left:8px solid;border-radius:10px;padding:.7rem .75rem}.turn .who{align-items:center;display:flex}.turn h1{font-size:1.35rem}.turn .meta{color:var(--muted);margin-top:.15rem;font-size:.85rem}.badge{color:var(--ink);background:#ece5d8;border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.75rem}.badge.monsoon{color:#fff;background:#1f5d8c}.steps{gap:.3rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.steps li{text-align:center;color:var(--muted);text-transform:capitalize;background:#efe8db;border-radius:6px;flex:1;padding:.25rem 0;font-size:.8rem}.steps li.now{background:var(--ink);color:#fff;font-weight:600}.dicerow{align-items:center;gap:.5rem;min-height:3rem;margin-bottom:.5rem;display:flex}.dicerow .lbl{width:4.2rem;color:var(--muted);font-size:.8rem}.die{background:linear-gradient(145deg,#cf3a30,#9c1d16);border-radius:.6rem;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:.1rem;width:3rem;height:3rem;padding:.4rem;display:grid;box-shadow:inset 0 -3px #00000038,inset 0 2px #ffffff40,0 2px 4px #0000004d}.die.def{background:linear-gradient(145deg,#4a423a,#1f1b17)}.die i{border-radius:50%}.die i.pip{background:#fff;box-shadow:inset 0 -1px 1px #00000040}.die.lost{opacity:.35;transform:scale(.9)}.dice p{margin:0}@media (prefers-reduced-motion:no-preference){.die{transition:opacity .3s,transform .3s}.die.rolling{animation:.42s linear infinite tumble}.die.rolling:nth-child(3){animation-duration:.36s;animation-direction:reverse}.die.rolling:nth-child(4){animation-duration:.5s}.die.won{animation:.35s ease-out settle}@keyframes tumble{0%{transform:translateY(0)rotate(0)}25%{transform:translateY(-7px)rotate(90deg)}50%{transform:translateY(0)rotate(180deg)}75%{transform:translateY(-4px)rotate(270deg)}to{transform:translateY(0)rotate(360deg)}}@keyframes settle{0%{transform:scale(1.25)}to{transform:scale(1)}}}.cards{grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:.4rem;margin:.4rem 0 .6rem;display:grid}.card{text-align:left;border-left-width:5px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.4rem .5rem;font-size:.8rem;display:flex}.card span{color:var(--muted)}.card.padati{border-left-color:#6b8e23}.card.ashva{border-left-color:#c2571a}.card.gaja{border-left-color:#54428e}.card.ratha{border-left-color:#b8960c}.card.on{outline:2px solid var(--ink);background:#f6efe1}.card:disabled{opacity:1;cursor:default}.players{border-collapse:collapse;width:100%;font-size:.88rem}.players th{text-align:right;color:var(--muted);padding-bottom:.2rem;font-size:.75rem;font-weight:500}.players th:first-child,.players td:first-child{text-align:left}.players td{text-align:right;font-variant-numeric:tabular-nums;padding:.2rem 0}.players tr.active td:first-child{font-weight:700}.players tr.out{opacity:.45;text-decoration:line-through}.log ul{max-height:14rem;margin:0;padding:0;font-size:.82rem;list-style:none;overflow-y:auto}.log li{border-top:1px solid #efe8db;padding:.2rem 0}.log li:first-child{border-top:0}.quit{color:var(--muted);align-self:flex-start;font-size:.8rem}.board{background:#bfd8e2}.shape{fill-opacity:.5;stroke:#fff;stroke-width:1.4px;stroke-linejoin:round}.shape.clickable{cursor:pointer}.shape.clickable:hover{fill-opacity:.68}.shape.dim{fill-opacity:.3}.regions path{fill:none;stroke-width:5px;stroke-linejoin:round;pointer-events:none}.searoutes path{fill:none;stroke:#2c6388;stroke-width:2px;stroke-dasharray:2 7;stroke-linecap:round;pointer-events:none;opacity:.8}.searoutes path.closed{opacity:.18}.mark{fill:none;pointer-events:none;stroke-linejoin:round}.mark.target{stroke:#1d1a17;stroke-width:2.4px;stroke-dasharray:6 4}.mark.chosen{stroke:#1d1a17;stroke-width:3.5px}.arrow{stroke:#1d1a17;stroke-width:3.5px;stroke-linecap:round;opacity:.8;pointer-events:none}.arrow.charge{stroke:#b3261e;stroke-width:5px;stroke-dasharray:3 9;opacity:1}.token .disc{stroke:#fff;stroke-width:2px}.token .count{text-anchor:middle;pointer-events:none;font-size:12.5px;font-weight:700}.token .pieces{stroke:#fff;stroke-width:1px;stroke-linejoin:round;paint-order:stroke}.token .tag{text-anchor:middle;fill:#3a332c;paint-order:stroke;stroke:#ffffffd9;stroke-width:2.5px;stroke-linejoin:round;pointer-events:none;font-size:9.5px;font-weight:500}.token .zone{fill:#ffffff73;stroke:#55617a;stroke-width:1.5px;stroke-dasharray:4 4}.token .mountain{fill:#fff;stroke:#3a332c;stroke-width:1.2px;stroke-linejoin:round}.token .tower path{stroke:#fff;stroke-width:1.6px;stroke-linejoin:round;paint-order:stroke}.token .loss{text-anchor:middle;fill:#b3261e;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none;font-size:15px;font-weight:800}.token.clickable{cursor:pointer}.token.clickable:hover .disc{stroke:#1d1a17}.token.dim{opacity:.55}.token:focus{outline:none}.token:focus-visible .disc{stroke:#1b6fd1;stroke-width:4px}.clash{pointer-events:none}.clash path{fill:#ffd34d;stroke:#b3261e;stroke-width:2px;stroke-linejoin:round;opacity:.85}.chart rect:first-child{fill:#fff;stroke:#c9d6dc;stroke-width:1px;opacity:.9}.chart text{fill:#2a2520;font-size:13px}.chart .charttitle{letter-spacing:.08em;fill:#6b7b84;font-size:10.5px;font-weight:700}.chart .bonus{text-anchor:end;font-weight:700}.board.fighting .chart{opacity:0}.seg.small button{min-width:0;padding:.15rem .6rem;font-size:.78rem}.legend{align-items:center}.credit{color:var(--muted);margin-left:auto;font-size:.72rem}.credit a{color:inherit}@media (prefers-reduced-motion:no-preference){.token .disc,.shape{transition:fill .4s,fill-opacity .2s}.token,.chart{transition:opacity .3s}.mark.target{animation:1s linear infinite march}.arrow.charge{animation:.5s linear infinite charge}.unit.hit{animation:.45s ease-in-out hit}.loss{animation:1s ease-out forwards rise}.clash path{transform-box:fill-box;transform-origin:50%;animation:.5s ease-in-out infinite clash}@keyframes march{to{stroke-dashoffset:-20px}}@keyframes charge{to{stroke-dashoffset:-24px}}@keyframes hit{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}20%{opacity:1}to{opacity:0;transform:translateY(-16px)}}@keyframes clash{0%,to{transform:scale(.55)rotate(0)}50%{transform:scale(1)rotate(25deg)}}}@media (width<=820px){.game{grid-template-columns:1fr;height:auto}.board{flex:none;height:100vw}.side{border-left:0}}.home section>*+*,.lobby section>*+*{margin-top:.7rem}.field{display:block}.field span{color:var(--muted);margin-bottom:.25rem;font-size:.85rem;display:block}.field input,.home input.code,.invite input{font:inherit;border:1px solid var(--line);border-radius:8px;width:100%;padding:.55rem .6rem}.home input.code{letter-spacing:.2em;text-transform:uppercase;flex:1;width:auto;font-weight:600}.or{text-align:center;color:var(--muted);font-size:.85rem}.invite{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.invite>div{flex:1;gap:.4rem;min-width:14rem;display:grid}.bigcode{letter-spacing:.16em;font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:700}.seats{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.seats li{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.seats li .who{flex:1;font-weight:600}.seats li.away .who{color:var(--muted)}.seats li.empty{color:var(--muted);background:0 0;border-style:dashed}.badge.ok{color:#fff;background:#1f7a4d}.lobby .badge{margin-left:0}.net{color:var(--muted);align-items:center;gap:.45rem;margin:0;font-size:.82rem;display:flex}.net .lamp{background:#1f9d55;border-radius:50%;width:.6rem;height:.6rem}.net.reconnecting,.net.connecting{color:#9a4a00;font-weight:600}.net.reconnecting .lamp,.net.connecting .lamp{background:#e08a00}.lobby .net{margin-bottom:.8rem}
