@import "https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@600;800&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap";:root{--bg:#14161a;--panel:#1e2126;--edge:#2c313a;--tile-a:#23272d;--tile-b:#262b31;--terrain-wall:#3a414b;--text:#e6e2d8;--dim:#8c8878;--steel:#86aec4;--steel-deep:#3e617a;--rust:#c4705c;--rust-deep:#7a4033;--amber:#d9a64c;--gold:#d8b45c;--path:#e8dfa8;--danger:#d96a5a;--land:#e8946a;--cell:44px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,sans-serif}.shell{max-width:440px;margin:0 auto;padding:12px 16px 40px}.serif{font-family:Shippori Mincho B1,serif}.title{letter-spacing:.06em;margin-top:24px;font-family:Shippori Mincho B1,serif;font-size:26px;font-weight:800}.title .accent{color:var(--amber)}.lead{color:var(--dim);margin-top:8px;font-size:13px;line-height:1.8}.card{background:var(--panel);border:1px solid var(--edge);color:var(--text);text-align:left;cursor:pointer;width:100%;font:inherit;border-radius:10px;padding:14px 16px}.card__name{font-size:16px;font-weight:700}.card__desc{color:var(--dim);margin-top:4px;font-size:12px}.rules{background:var(--panel);border:1px solid var(--edge);color:var(--dim);border-radius:10px;margin-top:22px;padding:14px;font-size:12.5px;line-height:1.9}.rules b.break{color:var(--rust)}.rules b.melee{color:var(--amber)}.rules b.move{color:var(--steel)}.topbar{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.topbar__meta{color:var(--dim);margin-left:10px;font-size:12px}.ghost{color:var(--dim);border:1px solid var(--edge);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:12px}.board{background:var(--edge);border-radius:10px;justify-content:center;gap:2px;width:fit-content;margin:0 auto;padding:6px;display:grid}.tile{width:var(--cell);height:var(--cell);cursor:pointer;background:var(--tile-a);outline-offset:-2px;border:none;border-radius:4px;padding:0;position:relative}.tile--odd{background:var(--tile-b)}.tile--wall{background:var(--terrain-wall);background-image:repeating-linear-gradient(45deg,#0000 0 4px,#0003 4px 8px)}.tile--path{background:#4a4633}.tile--candidate{outline:2px dashed #d9a64c99}.tile--selected{outline:2px solid var(--amber)}.tile--shift{outline:2px dashed var(--steel)}.tile--landing{outline:2px dashed #e8946aaa}.tile__fort{color:var(--gold);font-size:calc(var(--cell) * .5);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.tile__step{color:var(--path);justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;inset:0}.tile__reinf{border:1.5px dashed var(--danger);color:var(--danger);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;inset:2px}.piece{border-radius:5px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:3px}.piece--enemy{background:var(--rust-deep);border:1.5px solid var(--rust);color:#eab4a5}.piece--restrained{border-color:var(--amber);color:var(--amber);background:#5a4630;animation:1.6s infinite chainPulse}.piece--unit{border:2px solid var(--steel);background:#2e4552;border-radius:6px;inset:2px}.piece--unit.is-selected{background:var(--steel-deep)}.piece--unit.is-acted{opacity:.55;border-color:#55606a}.piece__name{font-size:calc(var(--cell) * .34);font-weight:700;line-height:1}.piece--unit .piece__name{font-family:Shippori Mincho B1,serif;font-size:calc(var(--cell) * .4);color:var(--text);font-weight:800}.hpbar{width:calc(var(--cell) - 14px);background:#0006;border-radius:2px;height:3px;margin-top:2px}.hpbar__fill{border-radius:2px;height:100%}.badge{color:#14161a;border-radius:4px;padding:1px 3px;font-size:9px;font-weight:800;position:absolute}.badge--stance{top:-5px;right:-5px}.badge--held{background:var(--amber);border-radius:8px;padding:1px 4px;bottom:-5px;right:-5px}.float{z-index:10;pointer-events:none;text-shadow:0 1px 3px #000;font-size:13px;font-weight:800;animation:.9s ease-out forwards floatUp;position:absolute;top:-4px;left:50%}.float--damage{color:var(--rust)}.float--hit{color:var(--danger)}.float--kill{color:#f0e6d0}.float--bind{color:var(--amber)}.float--release{color:var(--dim)}.float--drain{color:var(--amber)}@keyframes chainPulse{0%,to{box-shadow:inset 0 0 0 1px #d9a64c88}50%{box-shadow:0 0 0 2px var(--amber) inset}}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,2px)scale(.8)}15%{opacity:1;transform:translate(-50%,-2px)scale(1.1)}to{opacity:0;transform:translate(-50%,-16px)scale(1)}}.log{color:var(--dim);min-height:42px;margin-top:10px;font-size:11.5px;line-height:1.7}.notice{color:var(--danger);margin-top:6px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:10px;margin-top:10px;padding:12px}.panel__head{justify-content:space-between;margin-bottom:8px;font-size:12.5px;display:flex}.panel__stats{color:var(--dim)}.hint{color:var(--dim);margin-bottom:8px;font-size:11.5px;line-height:1.6}.row{gap:8px;display:flex}.col{flex-direction:column;gap:6px;display:flex}.mode-btn{cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:10px 0;font-family:inherit;font-size:14px;font-weight:800}.mode-btn--break{color:var(--rust);border:1.5px solid var(--rust)}.mode-btn--break.is-on{background:var(--rust);color:var(--bg)}.mode-btn--melee{color:var(--amber);border:1.5px solid var(--amber)}.mode-btn--melee.is-on{background:var(--amber);color:var(--bg)}.mode-btn--move{color:var(--steel);border:1.5px solid var(--steel)}.mode-btn--move.is-on{background:var(--steel);color:var(--bg)}.btn{cursor:pointer;border-radius:8px;flex:1;padding:10px 0;font-family:inherit;font-size:13.5px}.btn--main{background:var(--amber);color:var(--bg);border:none;font-weight:700}.btn--sub{color:var(--text);border:1px solid var(--edge);background:0 0;font-weight:500}.btn:disabled{opacity:.4;cursor:default}.result{background:var(--panel);border:1px solid var(--edge);text-align:center;border-radius:10px;margin-top:10px;padding:16px}.result--win{border-color:var(--gold)}.result--lose{border-color:var(--danger)}.result__title{font-family:Shippori Mincho B1,serif;font-size:22px;font-weight:800}.result--win .result__title{color:var(--gold)}.result--lose .result__title{color:var(--danger)}.metrics{color:var(--dim);text-align:left;margin-top:10px;font-size:12px;line-height:2}.metrics__row{justify-content:space-between;gap:12px;display:flex}.metrics__row span:last-child{color:var(--text)}.report{border-top:1px solid var(--edge);margin-top:14px;padding-top:12px}.report__head{color:var(--dim);text-align:left;margin-bottom:8px;font-size:12px}.report__note{color:var(--dim);text-align:left;min-height:15px;margin-top:8px;font-size:11px;line-height:1.5}.report .btn{padding:9px 0;font-size:12.5px}.badge--finish{background:var(--gold);color:var(--bg);border-radius:8px;padding:0 4px;animation:1.8s infinite finishPulse;top:-6px;left:-5px;box-shadow:0 0 0 1px #0006}@keyframes finishPulse{0%,to{opacity:.75}50%{opacity:1}}.tile--forest{background:#29332a repeating-linear-gradient(135deg,#0000 0 3px,#4e6b4a44 3px 6px)}.badge--cost{background:var(--steel);color:var(--bg);border-radius:8px;padding:0 4px;top:-6px;left:-5px}.piece--enemy .badge--finish{top:-6px;left:auto;right:-5px}
