:root{--bg:#f4f1e8;--panel:#fffdf7;--ink:#1f2a24;--muted:#5d6a62;--line:#d9d2c0;--accent:#2f6b4f;--accent-ink:#fff;--plant:#3f8a4f;--herbivore:#c48a1c;--predator:#b5463c;--decomposer:#7b5b3d;--event:#23857f;--mine:#2f62b5;--theirs:#9a3a78;--spring:#7cc47f;--summer:#f2c14e;--fall:#d9844a;--winter:#9fb3c8;--sun:#d9a400;--sun-bright:#ffd84d;--sun-bar:#f2b705;--gold:#b8860b;--gold-bright:gold;--warn:#a8461d;--fed:#2f7d46;--unfed:#b07a10;--dies:#b23a32;--dormant:#4d6fa8;--gap:4px;--tap:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141a17;--panel:#1d2520;--ink:#e7ece8;--muted:#9fb0a5;--line:#34413a;--accent:#5fae84;--accent-ink:#0f1712;--plant:#5aa96a;--herbivore:#d8a23c;--predator:#d0675d;--decomposer:#a8835d;--event:#4fbfb5;--mine:#6f9be8;--theirs:#d47bb5;--spring:#4f8f55;--summer:#b8902e;--fall:#a8603a;--winter:#5d7186;--sun:#f2c94c;--sun-bar:#e0b02a;--gold:#e0b43a;--warn:#e08a5a;--fed:#5fbf7d;--unfed:#e0b040;--dies:#e2665d;--dormant:#7fa0db}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font:15px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{overflow-x:hidden}button{font:inherit;color:inherit;min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line);background:var(--panel);cursor:pointer;touch-action:manipulation;border-radius:10px}button:disabled{cursor:default;opacity:.55}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.screen{max-width:480px;margin:0 auto;padding:12px 12px 180px}h1{margin:16px 0 4px;font-size:28px}h2{color:var(--muted);margin:16px 0 8px;font-size:15px;font-weight:600}h3{margin:6px 0 2px;font-size:14px}.lede{color:var(--muted);margin:0 0 8px}.choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.choices.four{grid-template-columns:repeat(4,minmax(0,1fr))}.choices.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{padding:8px 4px;font-weight:600}.choice.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seed{align-items:center;gap:8px;display:flex}.seed label{color:var(--muted)}.seed input{min-width:0;min-height:var(--tap);font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;flex:1;padding:0 10px}.primary,.secondary{width:100%;margin-top:10px;padding:10px 12px;font-weight:700;display:block}.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.howto p{color:var(--muted);margin:6px 0}.warn{color:var(--warn);font-weight:600}.ic{flex:none;width:1em;height:1em;display:inline-flex}.ic svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.ic .fill{fill:currentColor}.icon-btn{width:var(--tap);background:var(--panel);justify-content:center;align-items:center;padding:0;font-size:22px;display:inline-flex;position:relative}.icon-btn .badge{background:var(--accent);min-width:16px;height:16px;color:var(--accent-ink);border-radius:8px;font-size:10px;font-weight:800;line-height:16px;position:absolute;top:2px;right:2px}.screen.fight{height:100dvh;padding:4px 10px calc(6px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex;overflow:hidden}.screen.fight>*{flex:none}.top{align-items:center;gap:8px;display:flex}.turninfo{flex-wrap:wrap;flex:1;align-items:center;gap:4px 10px;min-width:0;margin:0;font-size:15px;display:flex}.turninfo .sun{align-items:center;gap:2px;font-weight:700;display:inline-flex}.turninfo .sun .ic{color:var(--sun)}.turninfo .sun small{color:var(--muted);font-size:13px;font-weight:500}.chip{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1px 8px;font-size:12px;font-weight:700}.chip.drought{color:var(--warn);border-color:var(--warn)}.chip.last{color:var(--accent);border-color:var(--accent)}.news{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:-2px 0 0;font-size:12px;line-height:1.25;display:-webkit-box;overflow:hidden}.screen.fight>.board{flex:1 1 0;min-height:0}.screen.fight>.board.mine{flex-grow:1.25}.board{border:2px solid var(--line);background:var(--panel);border-radius:14px;flex-direction:column;gap:3px;padding:3px 6px 6px;display:flex}.board.mine{border-color:var(--mine)}.board.theirs{border-color:var(--theirs)}.board.danger{border-color:var(--dies);box-shadow:0 0 0 3px color-mix(in srgb, var(--dies) 30%, transparent)}.board header{align-items:center;gap:6px;min-height:20px;display:flex}.board h2{white-space:nowrap;margin:0;font-size:13px;font-weight:700}.board.mine h2{color:var(--mine)}.board.theirs h2{color:var(--theirs)}.note-pill{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:11px;font-weight:700;overflow:hidden}.note-pill.t-bad{color:var(--dies)}.note-pill.t-good{color:var(--fed)}.gold{color:var(--gold);white-space:nowrap;align-items:center;gap:5px;margin-left:auto;font-size:11px;display:inline-flex}.gold .gbar{background:color-mix(in srgb, var(--gold) 20%, transparent);border-radius:4px;width:36px;height:7px;overflow:hidden}.gold .gbar .fill{background:var(--gold);height:100%;display:block}.rows{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex}.row{--w:calc((100% - (var(--m) - 1) * 4px) / var(--m));flex:1 1 0;justify-content:center;gap:4px;min-height:0;display:flex}.row.decomposer{border-top:2px dashed color-mix(in srgb, var(--decomposer) 40%, transparent);flex-grow:.85;padding-top:4px}.tile{flex:0 0 var(--w);color:#fff;text-align:center;border:2px solid #0000;border-radius:9px;justify-content:center;align-items:center;min-width:0;height:100%;min-height:0;margin:0;padding:0 4px;font-weight:700;display:flex;position:relative;overflow:hidden}.row.solo .tile{flex-basis:min(100%, calc(var(--w) * 1.4))}.tile.plant{background:var(--plant)}.tile.herbivore{background:var(--herbivore)}.tile.predator{background:var(--predator)}.tile.decomposer{background:var(--decomposer)}.tile:not(.empty){container-type:size}.tile .tbody{flex-direction:column;align-items:center;gap:2px;min-width:0;max-width:100%;padding:0 14px 6px;display:flex}.tile .name{-webkit-line-clamp:2;text-shadow:0 1px 1px #00000040;-webkit-box-orient:vertical;max-width:100%;font-size:12.5px;line-height:1.1;display:-webkit-box;overflow:hidden}.board.theirs .tile .name{font-size:11.5px}.tile .word{text-overflow:ellipsis;white-space:nowrap;background:#00000059;border-radius:6px;max-width:100%;padding:0 5px;font-size:10px;line-height:14px;overflow:hidden}.tile .word.t-bad{background:var(--dies)}.tile .word.t-good{background:var(--fed)}.tile .word.t-tgt{background:var(--accent)}.tile .ring{width:16px;height:16px;position:absolute;top:3px;right:3px}.tile .ring svg{fill:none;stroke-width:3.5px;width:100%;height:100%;transform:rotate(-90deg)}.ring .track{stroke:#fff6}.ring .had{stroke:var(--gold-bright)}.ring .soon{stroke:var(--gold-bright);opacity:.5;animation:1.2s ease-in-out infinite blink}.ring.full svg{fill:var(--gold-bright)}.tile .meter{background:#0000004d;border-radius:3px;height:5px;position:absolute;bottom:4px;left:6px;right:6px;overflow:hidden}.tile .meter .fill{background:#fff;height:100%;display:block}.tile .meter.short .fill{background:#ff5a4a}.tile .meter.short{outline:1px solid #ff5a4a}@container (height<=58px){.tile .tbody{padding-bottom:5px}.tile .tbody:has(.word) .name{-webkit-line-clamp:1}.tile .word{font-size:9.5px;line-height:13px}}@container (height<=38px){.tile .tbody{flex-direction:row;gap:4px;padding:0 16px 3px 2px}.tile .word{flex:none;max-width:50%;padding:0 4px}.tile .name{-webkit-line-clamp:1;font-size:11px}.tile .ring{width:14px;height:14px;top:calc(50% - 8px)}.tile .meter{height:3px;bottom:2px}}.tile.empty{border:2px dashed var(--line);color:var(--muted);background:0 0}.tile.empty .slotname{opacity:.7;font-size:11px;font-weight:500}.tile.empty.clock{border-color:var(--dies)}.tile.empty .clocktext{font-size:11px;font-weight:700;line-height:1.15}.board.mine .tile.empty .clocktext{color:var(--dies)}.board.theirs .tile.empty.clock{border-color:var(--fed)}.board.theirs .tile.empty .clocktext{color:var(--fed)}.tile.planned{opacity:.8;border:2px dashed #fff}.tile.invader{background-image:repeating-linear-gradient(135deg, var(--stripe) 0 7px, transparent 7px 15px)}.tile.invader.own-mine{--stripe:color-mix(in srgb, var(--mine) 70%, transparent);border-color:var(--mine)}.tile.invader.own-theirs{--stripe:color-mix(in srgb, var(--theirs) 70%, transparent);border-color:var(--theirs)}.tile.grown{border:3px solid var(--gold-bright);box-shadow:0 0 0 1px var(--gold)}.tile.leaving{opacity:.45;filter:grayscale(.6)}.tile.leaving .name{text-decoration:line-through}.tile.selected{outline:3px solid var(--ink);outline-offset:1px}.tile.gap,.screen.aiming .tile:not(.target):not(.selected){opacity:.35}.tile.target{outline:3px solid var(--accent);outline-offset:1px;animation:1.2s ease-in-out infinite pulse}.tile.empty.target{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-size:22px}@keyframes pulse{50%{outline-color:color-mix(in srgb, var(--accent) 35%, transparent)}}@keyframes blink{50%{opacity:.15}}@keyframes alarm{50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--dies) 55%, transparent)}}.card.answer{animation:1.2s ease-in-out infinite alarm}@media (prefers-reduced-motion:reduce){*{animation:none!important}}.info{height:60px;color:var(--muted);padding:3px 2px;font-size:12px;line-height:1.3;position:relative;overflow:hidden}.info p{margin:0}.info.about{color:var(--ink);padding-right:44px}.info h3{margin:0;font-size:13px}.info.err p:first-of-type{color:var(--warn);font-weight:700}.info .close{font-size:18px;position:absolute;top:0;right:0}.hand{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.card{text-align:left;border-width:2px;grid-template-rows:auto auto;grid-template-columns:34px 1fr;align-items:center;column-gap:8px;min-height:52px;padding:6px 8px;display:grid}.card .cglyph{color:#fff;background:var(--line);border-radius:8px;grid-row:1/span 2;justify-content:center;align-items:center;width:34px;height:34px;font-size:22px;display:flex}.card.plant .cglyph{background:var(--plant)}.card.herbivore .cglyph{background:var(--herbivore)}.card.predator .cglyph{background:var(--predator)}.card.decomposer .cglyph{background:var(--decomposer)}.card.disaster .cglyph{background:var(--warn)}.card.event .cglyph{background:var(--event)}.card.seed .cglyph{background:var(--theirs)}.cname{font-size:14px;font-weight:700;line-height:1.15}.cmeta{color:var(--muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.cmeta .cap{color:var(--ink);align-items:center;gap:1px;font-weight:700;display:inline-flex}.cmeta .cap .ic{color:var(--sun)}.hand .card{text-align:left;flex-direction:column;justify-content:space-between;align-items:stretch;gap:4px;min-height:64px;padding:6px 6px 5px;display:flex;position:relative}.hand .cname{-webkit-line-clamp:2;overflow-wrap:break-word;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}.hand .csub{color:var(--muted);align-items:center;gap:2px;font-size:11px;line-height:1.1;display:flex}.hand .card{border-top:5px solid var(--edge,var(--line))}.hand .card.plant{--edge:var(--plant)}.hand .card.herbivore{--edge:var(--herbivore)}.hand .card.predator{--edge:var(--predator)}.hand .card.decomposer{--edge:var(--decomposer)}.hand .card.disaster{--edge:var(--warn)}.hand .card.event{--edge:var(--event)}.hand .card.seed{--edge:var(--theirs)}.hand .csub .sunic{color:var(--sun);font-size:14px}.hand .csub b{color:var(--ink);font-size:13px}.card.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);translate:0 -2px}.card.planned{background:var(--bg);border-style:dashed}.card.planned .cglyph,.card.planned .cname{opacity:.45}.card.planned .csub{color:var(--accent);font-weight:700}.card.dim:not(.selected){opacity:.5}.card.seed{background-image:repeating-linear-gradient(135deg, color-mix(in srgb, var(--theirs) 18%, transparent) 0 6px, transparent 6px 12px)}.result{text-align:center;padding:10px 4px 4px}.result .verdict{justify-content:center;margin:0;font-size:26px}.result .reason{color:var(--muted);margin:4px 0 0}.result.won .verdict{color:var(--fed)}.result.lost .verdict{color:var(--dies)}.primary.danger{background:var(--warn);border-color:var(--warn)}.secondary.concede{color:var(--warn)}.log .lines p,.help-panel .lines p{margin:3px 0;font-size:13px}.summary h3{margin:8px 0 2px}.side h3{color:var(--muted);font-size:13px}.side .lists{flex-wrap:wrap;gap:4px 10px;margin:2px 0;font-size:13px;display:flex}.energy{color:var(--muted);margin:2px 0 6px;font-size:12px}.note{margin:4px 0;font-size:13px}.note.result{font-weight:700}.bar{border-top:1px solid var(--line);align-items:center;gap:8px;min-height:52px;padding-top:4px;display:flex}.bar.result{display:block}.bar .end{flex:none;width:auto;margin:0;padding:10px 18px}.bar.result .two .primary,.bar.result .two .secondary,.bar.result>.primary{margin-top:0}.moves{color:var(--muted);flex:1;align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.moves .dots{gap:4px;display:inline-flex}.dot{border:2px solid var(--accent);border-radius:50%;width:12px;height:12px}.dot.free{background:var(--accent)}.acts{flex:1;gap:8px;display:flex}.act{flex:1;padding:8px 10px;font-weight:700}.act.danger{color:var(--warn);border-color:var(--warn)}@media (height<=760px){.screen.fight{gap:4px}.news{-webkit-line-clamp:1}.info{height:50px;font-size:11px;line-height:1.25}.hand .card{min-height:54px;padding:4px 5px}.hand .cname{font-size:12px}.bar{min-height:46px}}.sheet{z-index:10;max-width:480px;padding:8px 12px calc(12px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0000002e}.sheet-title{margin:4px 0;font-weight:600}.two{grid-template-columns:1fr 1fr;gap:8px;display:grid}.verdict{align-items:center;gap:10px;margin:4px 0;font-weight:800;display:flex}.verdict.won{color:var(--fed)}.verdict.lost{color:var(--dies)}.help-panel{z-index:20;max-width:480px;padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:var(--bg);margin:0 auto;position:fixed;inset:0;overflow-y:auto}.howto-list dt{margin-top:10px;font-weight:800}.howto-list dd{margin:2px 0 0}.key{margin:0;padding:0;list-style:none}.key li{border-bottom:1px solid var(--line);grid-template-columns:76px 1fr;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:grid}.kicons{gap:2px;font-size:20px;display:inline-flex}.options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.option{text-align:left;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.option.on{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel))}.option .why{color:var(--muted);grid-column:1/-1;align-items:center;gap:4px;font-size:12px;display:inline-flex}.note .why{align-items:center;gap:4px;font-weight:700;display:inline-flex}.shelf-upgrade{margin-top:10px}.option.card{align-content:center;column-gap:10px;padding:6px 8px;display:grid}.block{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:4px 10px 10px}.muted,.note.muted{color:var(--muted)}.route{border-left:4px solid var(--line);margin:8px 0;padding:0;list-style:none}.stop{padding:6px 10px 6px 16px;position:relative}.stop:before{content:"";background:var(--panel);border:3px solid var(--line);border-radius:50%;width:16px;height:16px;position:absolute;top:10px;left:-10px}.stop.done:before{background:var(--accent);border-color:var(--accent)}.stop.next:before,.chip.run{border-color:var(--accent)}.seednote{color:var(--muted)}.unlock{color:var(--fed);font-weight:700}.notes-panel{z-index:20;max-width:480px;padding:12px 12px calc(16px + env(safe-area-inset-bottom));background:var(--bg);margin:0 auto;position:fixed;inset:0;overflow-y:auto}.note-input,.export{width:100%;font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:8px 10px}.export{font:12px/1.3 ui-monospace,Menlo,monospace}.note-list{padding-left:20px}.note-list li{justify-content:space-between;align-items:center;gap:8px;margin:4px 0;display:flex}.build{margin-top:24px;font-size:12px}
