.app--castle{--grass:#23392a;--road:#6b5a3e;--road-edge:#4f422d;--tree:#2f5a35;--tree-light:#3d6f43;--rock:#51584f;--plot:#4b5563;--plot-edge:#353d49;grid-template-rows:auto 1fr auto}:root[data-theme=light] .app--castle{--grass:#cfe3b4;--road:#e6d3a3;--road-edge:#c9ae74;--tree:#6fa35a;--tree-light:#8fbf72;--rock:#a9ab9f;--plot:#c2c6c9;--plot-edge:#9ea4aa}.board{grid-template-rows:auto 1fr auto;justify-items:center;gap:8px;min-height:0;padding:4px 10px 6px;display:grid}.wave{background:var(--surface);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:4px 6px;width:100%;max-width:420px;min-height:30px;padding:5px 8px;display:flex}.wave-group{font-variant-numeric:tabular-nums;color:var(--text-dim);align-items:center;gap:2px;font-size:12px;font-weight:800;display:inline-flex}.wave-group svg{width:20px;height:20px}.field{--tick:45ms;isolation:isolate;width:calc(var(--cell) * var(--cols));height:calc(var(--cell) * var(--rows));box-shadow:0 6px 18px var(--shadow);touch-action:manipulation;border-radius:14px;align-self:center;position:relative;overflow:hidden}.field[data-empty]{visibility:hidden}.field>svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.field-art .grass{fill:var(--grass)}.field-art .tree{fill:var(--tree)}.field-art .tree--light{fill:var(--tree-light)}.field-art .rock{fill:var(--rock)}.field-art .road-edge,.field-art .road{fill:none;stroke-linecap:round;stroke-linejoin:round}.field-art .road-edge{stroke:var(--road-edge);stroke-width:.66px}.field-art .road{stroke:var(--road);stroke-width:.52px}.field-art .entrance{fill:#2b241a;opacity:.75}.field-ranges{z-index:1}.range{fill:color-mix(in srgb, var(--tower) 14%, transparent);stroke:var(--tower);stroke-width:.035px;stroke-dasharray:.12 .08}.range--2{fill:color-mix(in srgb, var(--tower) 22%, transparent)}.field.is-breached:after{content:"";z-index:6;box-shadow:inset 0 0 0 4px var(--danger);pointer-events:none;border-radius:14px;position:absolute;inset:0}.plot{z-index:2;left:calc(var(--x) * var(--cell) + var(--cell) * .08);top:calc(var(--y) * var(--cell) + var(--cell) * .08);width:calc(var(--cell) * .84);height:calc(var(--cell) * .84);background:var(--plot);box-shadow:inset 0 -3px 0 var(--plot-edge);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.plot:not(.is-built):after{content:"";border:2px dashed color-mix(in srgb, var(--plot-edge) 90%, transparent);border-radius:50%;width:42%;height:42%}.plot.is-built{background:color-mix(in srgb, var(--plot) 70%, transparent)}.plot svg{filter:drop-shadow(0 1px 1px #0000004d);width:88%;height:88%}.plot:disabled{cursor:default}.plot.is-hinted,.plot.is-hinted-remove{z-index:5;outline:3px solid var(--accent);outline-offset:2px}.plot.is-hinted-remove{outline-color:var(--danger)}.field-foes{z-index:3;pointer-events:none;position:absolute;inset:0}.foe{left:calc(var(--size) / -2);top:calc(var(--size) / -2);width:var(--size);height:var(--size);transition:transform var(--tick) linear, opacity .16s ease;will-change:transform;position:absolute}.foe svg{filter:drop-shadow(0 1px 1px #00000059);width:100%;height:100%;overflow:visible}.foe-hp{background:#00000059;border-radius:2px;height:3px;position:absolute;top:-5px;left:8%;right:8%;overflow:hidden}.foe-hp>i{background:#6ee26e;height:100%;display:block}.foe.is-slowed svg{filter:drop-shadow(0 0 2px #7fd8ff)drop-shadow(0 0 1px #7fd8ff)}.foe.is-dead{opacity:0}.foe.is-through svg{filter:drop-shadow(0 0 3px var(--danger)) drop-shadow(0 0 2px var(--danger))}.field-fx{z-index:4}.bolt{stroke:#fff6d8;stroke-width:.05px;stroke-linecap:round;animation:.14s ease-out forwards castle-fade}.boom{fill:#ffaa3c73;stroke:#ff7828cc;stroke-width:.04px;transform-box:fill-box;transform-origin:50%;animation:.22s ease-out forwards castle-boom}@keyframes castle-fade{to{opacity:0}}@keyframes castle-boom{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1)}}.tray{justify-content:center;align-items:stretch;gap:8px;width:100%;max-width:420px;display:flex}.tray[hidden],.tray-tower[hidden]{display:none}.tray-tower{border-radius:var(--radius);background:var(--surface);width:62px;height:58px;box-shadow:0 2px 0 var(--shadow);place-items:center;transition:transform .12s,opacity .15s;display:grid;position:relative}.tray-tower svg{width:40px;height:40px}.tray-tower[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:-3px;background:var(--accent-soft)}.tray-tower:disabled{opacity:.4}.tray-count{background:var(--surface-raised);min-width:18px;color:var(--text);text-align:center;font-variant-numeric:tabular-nums;border-radius:9px;padding:0 4px;font-size:12px;font-weight:800;line-height:18px;position:absolute;bottom:3px;right:5px}.go{border-radius:var(--radius);background:var(--surface-raised);min-width:84px;max-width:130px;color:var(--text);letter-spacing:.02em;box-shadow:0 2px 0 var(--shadow);flex:auto;font-size:1.15rem;font-weight:800;transition:transform .12s,background .15s}.go.is-ready{background:var(--accent);color:#fff}.go:disabled{opacity:.4}.go:active:not(:disabled),.tray-tower:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.go.is-hinted{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.foe{transition:none}.bolt,.boom{opacity:0;animation:none}}
