:root{--ink:#f0e9dc;--ink-dim:#b9b0a0;--good:#7ee08a;--bad:#ff6b81;--loot:#6fc3ff;--gold:#e8b04b;--radius:12px;--cell:84px;--border:1px solid #ffffff14;font-size:15px}body[data-phase=farm],body[data-phase=result]{--bg0:#261d12;--bg1:#332718;--panel:#3a2d1cb8;--cell-bg:#3d2f1d;--cell-empty:#34291a;--accent:#e8b04b}body[data-phase=dungeon]{--bg0:#0d1118;--bg1:#141c29;--panel:#161e2cc7;--cell-bg:#1a2433;--cell-empty:#121925;--accent:#6fc3ff}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ink);background:radial-gradient(1200px 700px at 50% -10%, var(--bg1), transparent), var(--bg0);-webkit-user-select:none;user-select:none;font-family:Segoe UI,PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;transition:background .8s;overflow:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}button:disabled{cursor:not-allowed}em{font-style:normal}.app{flex-direction:column;height:100%;display:flex}.main{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px 20px 20px;display:flex}.view{align-items:stretch;gap:18px;max-height:100%;display:flex}.side-panel{width:264px;max-height:calc(var(--cell) * 5 + 4 * 8 + 92px);scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;overflow-y:auto}.panel{background:var(--panel);border:var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:14px}.panel-title{letter-spacing:2px;color:var(--ink-dim);margin:4px 0 10px;font-size:12px;font-weight:600}.panel-title+.panel-title,.seed-list+.panel-title,.tool-row+.panel-title{margin-top:16px}.board-col{flex-direction:column;justify-content:center;gap:14px;display:flex}.hud{justify-content:space-between;align-items:center;padding:14px 24px 6px;display:flex}.hud-left,.hud-right{align-items:center;gap:12px;display:flex}.logo{letter-spacing:.5px;white-space:nowrap;font-size:15.5px;font-weight:700}@media (width<=1180px){.logo{letter-spacing:0;font-size:13.5px}}.logo-mark{color:var(--accent)}.season-chip,.phase-chip{border:var(--border);background:var(--panel);color:var(--ink-dim);border-radius:999px;padding:3px 10px;font-size:12px}.phase-chip{color:var(--accent)}.weather-chip{border:var(--border);background:var(--panel);color:var(--ink);cursor:help;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.weather-chip.w-drought{border-color:#ff9d6f66}.weather-chip.w-fog{border-color:#b8a6e866}.weather-chip.w-frost{border-color:#9fd8ff66}.weather-chip.w-rain{border-color:#6fc3ff66}.weather-chip.w-harvest{border-color:#ffe9a066}.mute-btn{border:var(--border);background:var(--panel);width:30px;height:30px;color:var(--ink-dim);border-radius:999px;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.mute-btn:hover{color:var(--ink);border-color:#ffffff4d}.stat{background:var(--panel);border:var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:15px;font-weight:600;display:inline-flex}.stat.hp{color:#ff9aab}.stat.loot{color:var(--loot)}.board{grid-template-columns:repeat(5, var(--cell));grid-template-rows:repeat(5, var(--cell));background:var(--panel);border:var(--border);border-radius:18px;gap:8px;padding:16px;display:grid}.cell{border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:3px;transition:transform .12s,box-shadow .2s,background .3s;display:flex;position:relative}.farm-board .cell.unlocked{background:radial-gradient(60px 30px at 50% 110%, #00000040, transparent), var(--cell-empty);border:1.5px dashed #ffffff1a}.farm-board .cell.unlocked:hover{border-color:#ffffff4d;transform:translateY(-2px)}.farm-board .cell.planted{background:color-mix(in srgb, var(--seed-color) 13%, var(--cell-bg));border:1.5px solid color-mix(in srgb, var(--seed-color) 45%, transparent);box-shadow:0 4px 14px #00000040}.farm-board .cell.inspected{outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);outline-offset:1px}.cell.locked{color:#ffffff59;background:#0000004d;border:1.5px solid #ffffff0a}.cell.locked:hover{border-color:#fff3}.lock-tag{flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.lock-tag.afford{color:var(--gold)}.soil-dot{background:#ffffff1f;border-radius:50%;width:7px;height:7px}.maturity-dots{gap:3px;display:flex}.maturity-dots .dot{background:#ffffff29;border-radius:50%}.maturity-dots .dot.full{background:var(--ink)}.maturity-dots .dot.bonus{background:#6fc3ff}.cell-badges{flex-direction:column;gap:2px;display:flex;position:absolute;top:4px;right:4px}.badge{background:#00000080;border:1px solid #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:17px;height:17px;display:flex}.badge.fire{animation:1.2s infinite alternate flicker}.badge.hybrid{animation:1.6s infinite alternate hybridGlow}@keyframes hybridGlow{0%{box-shadow:0 0 4px #8fd8c873}to{box-shadow:0 0 10px #8fd8c8e6}}@keyframes flicker{0%{box-shadow:0 0 4px #ff8a5c80}to{box-shadow:0 0 9px #ff8a5ce6}}.depth-tag{color:var(--ink-dim);font-size:10px;position:absolute;bottom:4px;left:6px}.cell.rock{background:repeating-linear-gradient(135deg, #ffffff04 0 7px, transparent 7px 14px), var(--cell-empty);border:1.5px solid #ffffff08}.cell.room{background:color-mix(in srgb, var(--seed-color) 11%, var(--cell-bg));border:1.5px solid color-mix(in srgb, var(--seed-color) 38%, transparent)}.cell.room.cleared{opacity:.62;filter:saturate(.5)}.cell.room.here{border-color:#fff;box-shadow:0 0 0 2px #ffffff59,0 6px 18px #0006}.cell.room.reachable{animation:1.6s infinite pulse}.cell.room.reachable:hover{transform:translateY(-3px)scale(1.03)}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--seed-color) 45%, transparent)}50%{box-shadow:0 0 0 5px #0000}}.cell.room.ignited{background:radial-gradient(40px 26px at 50% 100%, #ff783c38, transparent), color-mix(in srgb, var(--seed-color) 11%, var(--cell-bg))}.room-label{color:var(--ink-dim);letter-spacing:1px;font-size:10.5px}.room-enemies{gap:2px;display:flex}.room-check{position:absolute;top:5px;right:6px}.mult-tag{color:color-mix(in srgb, var(--seed-color) 85%, #fff);opacity:.85;font-size:9.5px;position:absolute;bottom:4px;right:6px}.player-marker{background:var(--accent);border:2px solid #ffffffb3;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex;position:absolute;top:-7px;left:-7px;box-shadow:0 3px 10px #00000080}.seed-list{flex-direction:column;gap:6px;display:flex}.seed-item{text-align:left;background:#ffffff09;border:1.5px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:7px 9px;transition:all .15s;display:flex}.seed-item:hover{background:#ffffff12}.seed-item.selected{border-color:var(--seed-color);background:color-mix(in srgb, var(--seed-color) 14%, transparent)}.seed-item.disabled{opacity:.42}.seed-item-icon{background:color-mix(in srgb, var(--seed-color) 16%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.seed-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.seed-item-name{font-size:13.5px;font-weight:600}.seed-item-tag{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.seed-item-count{color:var(--ink-dim);font-size:12px;font-weight:600}.tool-row{gap:6px;display:flex}.tool-btn{background:#ffffff09;border:1.5px solid #0000;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:13px;font-weight:600;display:flex}.tool-btn:hover:not(:disabled){background:#ffffff12}.tool-btn.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent)}.tool-btn:disabled{opacity:.4}.tool-btn em{color:var(--loot)}.hint-text{color:var(--ink-dim);margin-top:10px;font-size:11.5px;line-height:1.6}.descend-row{justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.descend-hints{text-align:right;flex-direction:column;gap:3px;display:flex}.descend-hint{color:var(--ink-dim);font-size:12px}.descend-hint.warn{color:#ffb347}.descend-hint.curse{color:#b18ce8;animation:2.2s ease-in-out infinite cursePulse}@keyframes cursePulse{0%,to{opacity:.75}50%{opacity:1}}.descend-btn{letter-spacing:2px;color:#1c1408;background:linear-gradient(#f0c468,#d99a2b);border-radius:12px;align-items:center;gap:8px;padding:11px 22px;font-size:15px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 5px 16px #e8b04b4d}.descend-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px #e8b04b6b}.descend-btn:disabled{filter:grayscale(.8);opacity:.45;box-shadow:none}.descend-btn.ascend{color:#0d1420;background:linear-gradient(#8fd0ff,#58a8e8);box-shadow:0 5px 16px #6fc3ff4d}.tabs{gap:4px;margin-bottom:12px;display:flex}.tab{color:var(--ink-dim);background:#ffffff08;border-radius:8px;flex:1;padding:7px 0;font-size:12.5px;font-weight:600}.tab.active{color:var(--ink);background:color-mix(in srgb, var(--accent) 16%, transparent)}.info-card{flex-direction:column;gap:10px;display:flex}.info-head{background:color-mix(in srgb, var(--seed-color,#888) 12%, transparent);border:1px solid color-mix(in srgb, var(--seed-color,#888) 30%, transparent);border-radius:10px;align-items:center;gap:10px;padding:10px;display:flex}.info-name{font-size:15px;font-weight:700}.info-sub{color:var(--ink-dim);margin-top:2px;font-size:11.5px}.info-desc{color:var(--ink);opacity:.92;font-size:12.5px;line-height:1.7}.info-desc.small{color:var(--ink-dim);font-size:11.5px}.stat-list{flex-direction:column;gap:5px;list-style:none;display:flex}.stat-list li{background:#ffffff09;border-radius:8px;justify-content:space-between;align-items:center;padding:6px 9px;font-size:12.5px;display:flex}.stat-list li span{color:var(--ink-dim);align-items:center;gap:6px;display:inline-flex}.stat-list li em{font-weight:700}.stat-list li.fire-row em{color:#ff8a5c}.stat-list li.warn-row em{color:#ffb347}.stat-list li.hybrid-row em{color:#8fd8c8}.stat-list li.curse-row em{color:#b18ce8}.stat-list li.good-row em{color:#7ee08a}.weather-card{border:var(--border);background:#ffffff0a;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:10px;padding:10px 12px;display:flex}.weather-card .info-name.small{font-size:13px}.weather-card svg{color:var(--accent);flex-shrink:0;margin-top:2px}.shop{flex-direction:column;gap:6px;display:flex}.shop-title{letter-spacing:2px;color:var(--ink-dim);margin:6px 0 2px;font-size:11px}.shop-row{background:#ffffff09;border-radius:10px;align-items:center;gap:9px;padding:7px 9px;display:flex}.shop-name{flex-direction:column;flex:1;font-size:13px;font-weight:600;display:flex}.shop-owned{color:var(--ink-dim);font-size:10.5px;font-weight:400}.building-row .shop-owned{white-space:normal;line-height:1.5}.building-row.owned{background:#7ee08a0f;border:1px solid #7ee08a2e}.buy-btn{color:var(--loot);background:#6fc3ff1a;border:1px solid #6fc3ff4d;border-radius:8px;align-items:center;gap:4px;padding:5px 11px;font-size:12.5px;font-weight:700;display:inline-flex}.buy-btn:hover:not(:disabled){background:#6fc3ff33}.buy-btn:disabled{opacity:.38}.maxed{color:var(--good);font-size:11.5px}.shop-row.locked-row{opacity:.66}.shop-row.locked-row .locked-icon{filter:grayscale()}.shop-row.locked-row .maxed{color:var(--ink-dim);white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.quests{flex-direction:column;gap:6px;display:flex}.quest-row{background:#ffffff09;border-radius:10px;align-items:center;gap:9px;padding:8px 9px;display:flex}.quest-row.done{opacity:.65}.quest-check{justify-content:center;width:18px;display:flex}.quest-dot{border:1.5px solid var(--ink-dim);border-radius:50%;width:7px;height:7px}.quest-body{flex-direction:column;flex:1;display:flex}.quest-name{font-size:13px;font-weight:600}.quest-desc{color:var(--ink-dim);font-size:10.5px}.quest-reward{color:var(--loot);align-items:center;gap:3px;font-size:12px;font-weight:600;display:inline-flex}.reset-btn{color:var(--bad);background:#ff6b8114;border:1px solid #ff6b8140;border-radius:10px;margin-top:12px;padding:8px;font-size:12px}.reset-btn:hover{background:#ff6b8129}.hp-block{margin-bottom:10px}.hp-row{align-items:center;gap:7px;margin-bottom:6px;font-size:15px;font-weight:700;display:flex}.hp-bar{background:#0006;border-radius:999px;flex:1;height:10px;overflow:hidden}.hp-fill{background:linear-gradient(90deg,#ff6b81,#ff9aab);border-radius:999px;height:100%}.buff-list{flex-wrap:wrap;gap:5px;display:flex}.buff-chip{color:#f5b8d2;background:#f08bb821;border:1px solid #f08bb859;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.log-list{flex-direction:column;gap:4px;display:flex}.log-row{color:var(--ink-dim);background:#ffffff08;border-radius:7px;padding:5px 8px;font-size:11.5px;line-height:1.5}.log-row.good{color:var(--good)}.log-row.bad{color:#ff9aab}.log-row.loot{color:var(--loot)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#05080e9e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:var(--border);border-radius:16px;padding:20px;box-shadow:0 24px 60px #00000080}.modal-title{color:color-mix(in srgb, var(--seed-color,#fff) 80%, #fff);align-items:center;gap:10px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.title-tag{color:var(--ink-dim);background:#ffffff0f;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.title-tag.fire{color:#ff8a5c;background:#ff8a5c1f}.combat-modal{width:560px;transition:box-shadow .2s}.combat-modal.player-hit{animation:.4s panelShake;box-shadow:0 0 0 2px #ff6b8180,0 24px 60px #00000080}@keyframes panelShake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.enemy-row{justify-content:center;gap:10px;margin-bottom:16px;display:flex}.enemy-card{background:#ffffff0b;border:1.5px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:5px;width:128px;padding:12px 8px 9px;transition:border-color .15s,opacity .3s;display:flex;position:relative}.enemy-card.selected{background:#ffffff14;border-color:#ffffff8c}.enemy-card.dead{opacity:.32;filter:grayscale()}.enemy-card.enraged{background:#ff5c5c14;border-color:#ff5c5ca6;animation:1.4s ease-in-out infinite enragePulse}@keyframes enragePulse{0%,to{box-shadow:0 0 #ff5c5c40}50%{box-shadow:0 0 14px 2px #ff5c5c66}}.enrage-tag{color:#ffd6d6;background:#ff5c5c4d;border-radius:5px;margin-right:4px;padding:1px 5px;font-size:10px;font-style:normal;font-weight:700;display:inline-block}.enemy-name{font-size:12.5px;font-weight:600}.enemy-hp-bar{background:#00000073;border-radius:999px;width:100%;height:6px;overflow:hidden}.enemy-hp-fill{background:linear-gradient(90deg,#c0596b,#ff6b81);height:100%}.enemy-hp-num{color:var(--ink-dim);font-size:10.5px}.intent{color:var(--ink-dim);background:#ffffff0f;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.intent.smash{color:#ffb347;background:#ffb34721;animation:.9s infinite alternate flicker}.intent.charge{color:#b18cff;background:#b18cff21}.intent.summon{color:#8fd8c8;background:#8fd8c821}.intent.dead-label{color:var(--ink-dim)}.dmg-float{color:#ffb347;text-shadow:0 2px 6px #0009;pointer-events:none;z-index:2;font-size:18px;font-weight:800;position:absolute;top:6px;left:50%;transform:translate(-50%)}.combat-player{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.combat-hp{align-items:center;gap:9px;font-size:13px;font-weight:700;display:flex}.combat-log{flex-direction:column;gap:3px;min-height:66px;display:flex}.action-row{gap:8px;display:flex}.action-btn{background:#ffffff0d;border:1.5px solid #ffffff1a;border-radius:11px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px;font-size:13px;font-weight:700;transition:all .12s;display:flex}.action-btn em{color:var(--ink-dim);font-size:10.5px;font-weight:600}.action-btn:hover:not(:disabled){background:#ffffff1a;transform:translateY(-2px)}.action-btn:disabled{opacity:.38}.action-btn.heavy{border-color:#ffb34766}.action-btn.heavy:hover:not(:disabled){background:#ffb3471f}.action-btn.guard{border-color:#6fc3ff59}.action-btn.guard:hover:not(:disabled){background:#6fc3ff1a}.action-btn.potion{border-color:#7ee08a59}.action-btn.potion:hover:not(:disabled){background:#7ee08a1a}.action-btn.flee{border-color:#ffffff1f}.power-modal{width:520px}.power-options{gap:10px;display:flex}.power-card{text-align:center;background:#f08bb812;border:1.5px solid #f08bb84d;border-radius:12px;flex-direction:column;flex:1;gap:7px;padding:18px 13px;transition:all .14s;display:flex}.power-card:hover{background:#f08bb826;border-color:#f08bb899;transform:translateY(-4px)}.power-name{color:#f5b8d2;font-size:15px;font-weight:700}.power-desc{color:var(--ink-dim);font-size:12px;line-height:1.55}.event-modal{width:460px;position:relative;overflow:hidden}.event-fog{pointer-events:none;background:radial-gradient(60% 38% at 22% 28%,#a8b8d821,#0000 70%),radial-gradient(52% 34% at 78% 70%,#a8b8d81a,#0000 70%);animation:9s ease-in-out infinite alternate fogDrift;position:absolute;inset:-40%}@keyframes fogDrift{0%{transform:translate(-3%)translateY(-1.5%)}to{transform:translate(3%)translateY(1.5%)}}.event-desc{color:var(--ink);margin:2px 0 16px;font-size:13.5px;line-height:1.8;position:relative}.event-actions{flex-direction:column;gap:9px;display:flex;position:relative}.event-btn{border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:13px 16px;font-size:13.5px;font-weight:600;transition:all .14s;display:flex}.event-btn.accept{color:#cfe6df;background:#8fd8c81a;border:1.5px solid #8fd8c859}.event-btn.accept:hover:not(:disabled){background:#8fd8c833;border-color:#8fd8c8a6;transform:translateY(-2px)}.event-btn.accept:disabled{opacity:.45}.event-btn.decline{color:var(--ink-dim);background:#ffffff0a;border:1.5px solid #ffffff1f}.event-btn.decline:hover{color:var(--ink);background:#ffffff17}.event-note{color:var(--bad);font-size:11px;font-weight:400}.result-view{justify-content:center}.result-card{background:var(--panel);border:var(--border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:18px;width:480px;padding:30px 28px;display:flex;box-shadow:0 24px 60px #0006}.result-card.died{border-color:#ff6b814d}.result-card.victory{background:linear-gradient(160deg,#3c3016eb,#221e14f2);border-color:#ffd66e8c;position:relative;overflow:hidden;box-shadow:0 24px 70px #ffbe502e}.result-card.victory .result-title{color:#ffd66e;text-shadow:0 0 18px #ffd66e73}.victory-rays{pointer-events:none;background:conic-gradient(#0000 0deg,#ffd66e12 14deg,#0000 28deg,#ffd66e12 42deg,#0000 56deg,#ffd66e12 70deg,#0000 84deg,#ffd66e12 98deg,#0000 112deg,#ffd66e12 126deg,#0000 140deg,#ffd66e12 154deg,#0000 168deg,#ffd66e12 182deg,#0000 196deg,#ffd66e12 210deg,#0000 224deg,#ffd66e12 238deg,#0000 252deg,#ffd66e12 266deg,#0000 280deg,#ffd66e12 294deg,#0000 308deg,#ffd66e12 322deg,#0000 336deg,#ffd66e12 350deg,#0000 360deg);animation:24s linear infinite raysSpin;position:absolute;inset:-60%}@keyframes raysSpin{to{transform:rotate(360deg)}}.result-title{letter-spacing:3px;font-size:26px}.result-card.died .result-title{color:#ff9aab}.result-sub{color:var(--ink-dim);font-size:13px;line-height:1.7}.result-stats{gap:12px;width:100%;display:flex}.result-stat{background:#ffffff0a;border-radius:12px;flex-direction:column;flex:1;gap:6px;padding:12px;display:flex}.rs-label{color:var(--ink-dim);letter-spacing:1px;font-size:11px}.rs-value{justify-content:center;align-items:center;gap:6px;font-size:19px;font-weight:800;display:inline-flex}.result-seeds{width:100%}.result-seeds h4{color:var(--ink-dim);letter-spacing:2px;margin-bottom:9px;font-size:12px}.seed-haul{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.haul-chip{background:color-mix(in srgb, var(--seed-color) 14%, transparent);border:1px solid color-mix(in srgb, var(--seed-color) 40%, transparent);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.bonus-mark{color:var(--gold);font-size:10px}.milestone-toast{z-index:100;cursor:pointer;background:linear-gradient(#3a2d1cf7,#281f13f7);border:1px solid #e8b04b80;border-radius:13px;flex-direction:column;gap:3px;padding:12px 22px;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 36px #00000080}.toast-title{color:var(--gold);letter-spacing:1px;font-size:14px;font-weight:800}.toast-desc{color:var(--ink-dim);font-size:11.5px}
