@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
.hex:focus-visible{stroke:#fff;stroke-width:4;filter:brightness(1.2);outline:none}
:root{color-scheme:light;--ink:#21382f;--muted:#778178;--gold:#b99451;--paper:#f6f5ef}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,select{font:inherit;cursor:pointer}button{border:1px solid #d7dace;background:transparent;color:var(--ink);border-radius:7px;padding:11px 17px;font-weight:600}button:hover{background:#e7eadd}button:focus-visible,select:focus-visible{outline:3px solid #af8135;outline-offset:3px}button:disabled{opacity:.4;cursor:default}header{height:92px;padding:0 5%;border-bottom:1px solid #dedfd5;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);font-weight:700;letter-spacing:3px;font-size:19px}.brand small{display:block;letter-spacing:2.8px;font-size:8px;margin-top:6px;color:var(--muted)}.crest{font-size:33px;color:#a7874c}.header-actions{display:flex;gap:10px}.header-actions button{font-size:12px}main{max-width:1600px;margin:auto;padding:36px 4% 24px}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;color:#8c7958;font-weight:700}h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:46px;line-height:1.1;font-weight:600;margin:10px 0}p{line-height:1.6}.intro p:not(.eyebrow){color:var(--muted);font-size:13px;margin:10px 0 0}.settings{display:grid;grid-template-columns:auto auto;gap:8px 10px;align-items:center}.settings label{grid-column:1/-1;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}select{background:#fffef8;border:1px solid #d7dace;border-radius:7px;color:var(--ink);padding:12px;font-size:12px}.settings button{font-size:12px}.arena{display:grid;grid-template-columns:200px minmax(0,1fr) 200px;gap:22px;align-items:start}.team{background:#efeee5;border:1px solid #dedfd3;border-radius:12px;padding:20px 14px;margin-top:50px}.team-top{display:flex;gap:12px;align-items:center;margin-bottom:18px}.sigil{font-size:31px;color:#ad925b}.ember .sigil{color:#9a5c4a}.team-top small{font-size:8px;letter-spacing:1.7px;color:#8c8c7b;font-weight:700}h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;margin:4px 0;font-weight:600}.roster button{display:flex;gap:10px;align-items:center;width:100%;border:1px solid transparent;text-align:left;padding:7px 5px;margin-bottom:6px}.roster button.active{background:#fffdf4;border-color:#b79c62}.roster button.dead{opacity:.3;filter:grayscale(1)}.portrait{width:42px;height:52px;flex-shrink:0}.roster strong{display:block;font-size:11px}.roster small{font-size:9px;color:#7c8478;display:block;margin-top:3px}.health{display:flex;gap:3px;margin-top:6px}.health i{width:10px;height:3px;border-radius:2px;background:#a5b58f}.health i.empty{background:#d6d6c9}.ember .health i:not(.empty){background:#b67c62}.team-note{text-align:center;font-family:Georgia,serif;font-style:italic;font-size:11px;color:#989582;border-top:1px solid #d8dbcd;padding-top:16px;margin-top:16px}.battle{border-radius:14px;overflow:hidden;background:#253f37;box-shadow:0 15px 35px #233c2d16;border:1px solid #314b3c}.battlebar{padding:17px 22px;background:#1e342d;display:flex;justify-content:space-between;align-items:center;color:#f0ecd9;font-size:12px}#turn i{display:inline-block;width:7px;height:7px;background:#d7c695;border-radius:100%;margin-right:8px}#round{font-size:9px;letter-spacing:2px;color:#a5b4a7}.board-wrap{position:relative;background:radial-gradient(ellipse at center,#57705b,#2e483d 80%)}#board{display:block;width:100%;max-height:65vh;min-height:350px}.board-footer{display:flex;gap:22px;justify-content:center;background:#243c33;color:#b7c1ad;padding:13px 10px;font-size:9px}.dot{width:7px;height:7px;display:inline-block;margin-right:5px;border-radius:50%}.move{background:#d3c28b}.attack{background:#d68b71}.command{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#eceee4;border:1px solid #dce0d0;border-radius:10px;padding:18px 24px;margin-top:24px}#selected{display:flex;align-items:center;gap:17px}.command-icon{font-size:28px;color:#9b865a}h3{font-size:13px;margin:0 0 5px}.command p{font-size:11px;color:#7d8776;margin:0}.command button{background:#263f33;color:#fff5d9;border:0;white-space:nowrap;font-size:12px}.bottom{display:flex;justify-content:space-between;gap:18px;margin-top:17px;font-size:11px;color:#788474}.bottom>span:last-child{font-size:8px;letter-spacing:1.6px}.hex{transition:fill .15s;cursor:pointer}.hex:hover{filter:brightness(1.14)}.unit{cursor:pointer;outline:none}.unit:focus-visible .base{stroke:#fff;stroke-width:3}.unit:hover{filter:brightness(1.15)}.figure{animation:breathe 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}@keyframes breathe{50%{transform:translateY(-1.6px)}}.banner{position:absolute;inset:28% 8% auto;text-align:center;background:#f7f1dfed;backdrop-filter:blur(8px);padding:25px;border:1px solid #d3bd8e;border-radius:12px;box-shadow:0 15px 60px #0004}.banner h2{font-size:38px}.banner p{font-size:13px}.banner button,.primary{background:#263f33;color:#fff5d9}dialog{max-width:490px;width:calc(100% - 30px);border:1px solid #dbcfad;border-radius:15px;padding:34px;background:#f7f4e9;color:var(--ink);box-shadow:0 20px 100px #0006}dialog::backdrop{background:#132a24a8;backdrop-filter:blur(4px)}dialog h2{font-size:34px}dialog p{font-size:13px;color:#637062}.close{position:absolute;right:12px;top:10px;border:0;font-size:20px;padding:4px 10px}.rules{padding:8px 18px;background:#e9ecdf;border-radius:8px}.rules p{font-size:12px}.rules b{color:#283e2e}.primary{width:100%;margin-top:10px}@media(min-width:1500px){.arena{grid-template-columns:220px minmax(0,1fr) 220px}}@media(max-width:1050px){.arena{grid-template-columns:135px minmax(0,1fr) 135px;gap:12px}.team{padding:15px 8px}.team-top{gap:5px}.team-top h2{font-size:20px}.sigil{font-size:23px}.portrait{width:30px}.roster button{gap:5px}.team-note{font-size:10px}main{padding:25px 3%}.intro h1{font-size:39px}}@media(max-width:760px){header{height:73px;padding:0 5%}.brand{font-size:14px;letter-spacing:2px}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:8px}.intro{display:block;margin-bottom:20px}.intro h1{font-size:37px}.settings{display:flex;flex-wrap:wrap;margin-top:18px}.settings label{display:none}.settings select{flex:1}.arena{display:flex;flex-wrap:wrap;gap:12px}.battle{order:0;width:100%}.team{order:1;margin:0;width:calc(50% - 6px);padding:12px}.team-top{margin-bottom:6px}.roster{display:flex;gap:2px}.roster button{display:block;padding:4px 0;text-align:center;margin:0;min-width:0}.portrait{width:100%;height:38px}.roster strong{font-size:8px}.roster small,.team-note{display:none}.health{gap:1px;justify-content:center}.health i{width:5px;height:3px}.team-top h2{font-size:20px}.team-top small{font-size:7px}.sigil{font-size:27px}.team-top{gap:8px}#board{min-height:0;max-height:none}.command{padding:14px;margin-top:14px;gap:10px}.command-icon{display:none}.command button{padding:12px;font-size:10px}.command p{font-size:10px}.bottom{font-size:10px}.bottom>span:last-child{display:none}.board-footer{gap:15px;font-size:8px}.battlebar{padding:14px}.eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){.figure{animation:none}*{transition:none!important}}
