:root{--bg-glass: rgba(12, 16, 24, .84);--bg-glass-heavy: rgba(14, 19, 29, .93);--bg-card: rgba(22, 29, 44, .88);--border-dim: rgba(66, 86, 122, .55);--border-hi: rgba(104, 136, 188, .8);--text-main: #e8eef7;--text-muted: #98a7c2;--amber: #ffb838;--cyan: #2cf5ff;--emerald: #4ade80;--danger: #ff5c6c;--violet: #b975ff;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "PingFang SC", "Microsoft YaHei", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100vw;height:100vh;overflow:hidden;background:#0b0f19;color:var(--text-main);font-family:var(--font-mono);font-size:12px;user-select:none;-webkit-font-smoothing:antialiased}#world-canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block;cursor:grab;touch-action:none;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;image-rendering:pixelated;z-index:1}#world-canvas.dragging{cursor:grabbing}#world-pins{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}.w-pin{position:absolute;transform:translate(-50%,-100%);padding:2px 6px;font-size:10px;background:#0a0d14c7;border:1px solid rgba(112,138,182,.65);color:#dce6f5;white-space:nowrap;border-radius:2px;backdrop-filter:blur(2px)}.w-pin.honey{border-color:#ffb838cc;color:#ffd98a}.w-pin.royal{border-color:#ff7088cc;color:#ffc2cc}.w-pin.surface{border-color:#2cf5ffa6;color:#a8f9ff}.w-pin.danger{border-color:#ff5c6cd9;color:#ff9aa4}.top-ribbon{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:linear-gradient(180deg,#080b12eb,#0c101ac2);border-bottom:1px solid var(--border-dim);backdrop-filter:blur(6px);flex-wrap:wrap}.ribbon-left,.ribbon-mid,.ribbon-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brand-title{font-size:14px;font-weight:800;color:var(--amber);letter-spacing:1px}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;font-size:11px;background:#182132d9;border:1px solid var(--border-dim);border-radius:2px}.pill.cyan{border-color:#2cf5ff8c;color:var(--cyan)}.pill.amber{border-color:#ffb838a6;color:var(--amber);cursor:pointer}.tele{color:var(--text-muted);font-size:11px}.tele b{color:var(--text-main)}.tele b.warn{color:var(--amber)}.tele b.danger{color:var(--danger)}.px-btn{background:#161e2ee6;color:var(--text-main);border:1px solid var(--border-hi);padding:3px 7px;font-family:inherit;font-size:11px;cursor:pointer;border-radius:2px;transition:all .12s}.px-btn:hover:not(:disabled){background:#24324cf2;border-color:var(--cyan)}.px-btn.active{background:#183e4ef2;border-color:var(--cyan);color:var(--cyan);font-weight:700}.px-btn.amber{background:#3e2a0eeb;border-color:var(--amber);color:var(--amber)}.px-btn.amber:hover:not(:disabled){background:#583c12f5}.px-btn:disabled{opacity:.4;cursor:not-allowed}.minimap-dock{position:fixed;top:48px;right:12px;z-index:9;width:224px;background:var(--bg-glass);border:1px solid var(--border-hi);padding:6px;backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:5px}.minimap-head{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted)}#minimap-canvas{width:100%;height:92px;display:block;border:1px solid var(--border-dim);cursor:crosshair;image-rendering:pixelated}.expand-btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}.expand-btns .px-btn{padding:3px 4px;font-size:10px;text-align:center}.command-dock{position:fixed;left:12px;bottom:32px;z-index:10;width:min(460px,calc(100vw - 24px));background:var(--bg-glass-heavy);border:1px solid var(--border-hi);backdrop-filter:blur(8px);box-shadow:0 12px 36px #000000a6;display:flex;flex-direction:column}.dock-tabs{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:5px 7px;background:#0a0e16e6;border-bottom:1px solid var(--border-dim);flex-wrap:wrap}.dock-tab-group{display:flex;gap:4px;flex-wrap:wrap}.dock-body{padding:10px;max-height:min(46vh,340px);overflow-y:auto}.command-dock.collapsed .dock-body{display:none}.command-dock.collapsed .dock-tabs{border-bottom:none}.bottom-probe{position:fixed;left:12px;right:12px;bottom:5px;z-index:8;display:flex;justify-content:space-between;padding:3px 9px;font-size:11px;background:#090c13c2;border:1px solid var(--border-dim);color:var(--text-muted);pointer-events:none}.hormone-list{display:flex;flex-direction:column;gap:9px}.hormone-item{display:flex;flex-direction:column;gap:3px}.hormone-top{display:flex;justify-content:space-between;font-size:11px}.actual-num{color:var(--amber);font-weight:700}.target-num{color:#fff;font-weight:700}.dual-slider-track{position:relative;height:16px;background:#090d14;border:1px solid var(--border-hi);cursor:ew-resize;touch-action:none;margin-top:2px}.dual-slider-actual{position:absolute;top:2px;bottom:2px;left:2px;background:linear-gradient(90deg,#9e5814,#ffb838);pointer-events:none}.dual-slider-target{position:absolute;top:-3px;bottom:-3px;width:2px;background:#fff;transform:translate(-1px);pointer-events:none}.dual-slider-target:before{content:"▼";position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:9px;color:#fff}.hormone-hint{font-size:10px;color:var(--text-muted)}.hormone-hint.warn{color:var(--amber)}.stomach-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:7px}.meter-box{background:var(--bg-card);border:1px solid var(--border-dim);padding:6px}.meter-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}.meter-bar{height:6px;background:#080b11;border:1px solid #28364f}.meter-fill{height:100%;transition:width .2s}.meter-fill.sugar{background:linear-gradient(90deg,#1b9eb3,#4ef4ff)}.meter-fill.protein{background:linear-gradient(90deg,#b8561c,#ffa63b)}.meter-fill.sperm{background:linear-gradient(90deg,#6f42c1,#b975ff)}.cohort-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:6px}.cohort-cell{background:var(--bg-card);border:1px solid var(--border-dim);padding:4px;text-align:center}.cohort-num{font-size:13px;font-weight:700}.cohort-tag{font-size:10px;color:var(--text-muted)}.ruler-track{position:relative;height:11px;background:linear-gradient(90deg,#2a6fdb,#38b87c 35%,#ffb838 72%,#ff4757 88%,#c56cf0);border:1px solid #485c82;margin:14px 0 16px}.ruler-mark{position:absolute;top:-12px;transform:translate(-50%);font-size:9px;color:var(--text-muted);white-space:nowrap}.ruler-current{position:absolute;bottom:-14px;transform:translate(-50%);font-size:10px;font-weight:700;color:#fff;white-space:nowrap}.trait-row{display:flex;align-items:center;justify-content:space-between;padding:6px;background:var(--bg-card);border:1px solid var(--border-dim);margin-top:5px}.log-list{display:flex;flex-direction:column;gap:4px;user-select:text}.log-row{font-size:11px;padding:4px 6px;background:var(--bg-card);border-left:3px solid var(--border-hi)}.log-row.science{border-left-color:var(--cyan)}.log-row.blindbox{border-left-color:var(--violet)}.log-row.warn{border-left-color:var(--amber)}.log-row.danger{border-left-color:var(--danger)}.nuptial-float{position:fixed;top:52px;left:50%;transform:translate(-50%);z-index:12;background:#0e192af2;border:2px solid var(--cyan);padding:8px 12px;max-width:520px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 28px #2cf5ff40}.offline-toast{position:fixed;top:52px;left:12px;z-index:11;background:#161f30f0;border:1px solid var(--amber);padding:6px 10px;font-size:11px;color:var(--amber);display:flex;align-items:center;gap:8px}.modal-backdrop{position:fixed;inset:0;background:#05070cd1;display:flex;align-items:center;justify-content:center;padding:16px;z-index:30}.modal-card{width:100%;max-width:540px;background:#121826;border:2px solid var(--border-hi);padding:16px;display:flex;flex-direction:column;gap:12px}.save-textarea{width:100%;height:90px;background:#0a0d14;border:1px solid var(--border-hi);color:var(--cyan);font-family:inherit;font-size:11px;padding:8px;resize:none;user-select:text}@media (max-width: 768px){.minimap-dock{width:168px;top:auto;bottom:34px;right:8px}#minimap-canvas{height:64px}.command-dock{left:8px;width:calc(100vw - 16px);bottom:34px}.bottom-probe{font-size:10px}}.arch-switcher{display:inline-flex;background:#080c14eb;border:1px solid var(--amber);border-radius:5px;padding:2px;gap:3px}.arch-btn{background:transparent;color:var(--text-muted);border:none;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;border-radius:3px;transition:all .15s ease}.arch-btn.active{background:linear-gradient(135deg,#f5b335,#d97b1e);color:#140c04;box-shadow:0 0 10px #f5b33573}.scheme-dock{position:fixed;right:12px;bottom:34px;width:min(460px,calc(100vw - 24px));background:#0b0f18e0;backdrop-filter:blur(8px);border:1px solid var(--border-hi);border-radius:6px;padding:8px 10px;z-index:25;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 24px #0000008c}.scheme-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;color:var(--amber)}.bp-grid,.stage-strip{display:flex;flex-wrap:wrap;gap:5px}.px-btn.selected{border-color:var(--cyan);background:#5cf6ff38;color:#fff;box-shadow:0 0 8px #5cf6ff61}.evo-prog-bar{width:100%;height:6px;background:#171f2e;border:1px solid var(--border-dim);border-radius:3px;overflow:hidden}.evo-prog-fill{height:100%;background:linear-gradient(90deg,#5cf6ff,#f5b335);transition:width .2s ease}
