:root{--ink:#eef2ff;--dim:#a9b4d6;--mute:#6c7899;--glass:#0c102094;--glass2:#141a34b8;--line:#ffffff1f;--accent:#7cf3ff;--good:#7dffb0;--bad:#ff6b7e;--warn:#ffd36b;--r:14px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:none;background:#05060f;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0}#stage{touch-action:none;position:absolute;top:0;bottom:0;left:0;right:0}.cv{width:100%;height:100%;display:block;position:absolute;top:0;left:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}#fx{pointer-events:none;z-index:5;position:absolute;top:0;bottom:0;left:0;right:0}#tint{opacity:0;transition:opacity .5s;position:absolute;top:0;bottom:0;left:0;right:0}#vig{background:radial-gradient(#0000 58%,#02030a8c 100%);position:absolute;top:0;bottom:0;left:0;right:0}#iris{opacity:0;box-shadow:0 0 40px 8px var(--accent), inset 0 0 30px 4px var(--accent);border:2px solid #ffffffb3;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}#flash{opacity:0;background:radial-gradient(circle,#fff,#0000 70%);position:absolute;top:0;bottom:0;left:0;right:0}#hud{pointer-events:none;z-index:10;position:absolute;top:0;bottom:0;left:0;right:0}#hud>*{pointer-events:auto}.hidden{display:none!important}svg.ic{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em;flex:none;width:1.15em;height:1.15em}svg.ic.fill{fill:currentColor;stroke:none}.panel,.glass{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.3);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 40px #00000059}#topbar{top:calc(8px + var(--safe-t));pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;left:8px;right:8px}#topbar>*{pointer-events:auto}.tb-world{cursor:default;flex-direction:column;min-width:150px;max-width:280px;padding:7px 14px 7px 12px;display:flex}.tb-world b{letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.15;overflow:hidden}.tb-world small{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;opacity:.9;font-size:11px}.tb-stats{flex-wrap:nowrap;align-items:center;gap:2px;padding:5px 8px;display:flex;overflow:hidden}.stat{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:4px 9px;font-size:14px;display:flex}.stat svg{color:var(--c,var(--dim))}.stat small{color:var(--mute);margin-left:1px;font-size:11px}.stat .rate{color:var(--mute);font-size:11px}.stat .rate.pos{color:var(--good)}.stat .rate.neg{color:var(--bad)}.healthbar{background:#ffffff1f;border-radius:6px;width:74px;height:8px;margin-left:4px;overflow:hidden}.healthbar i{background:linear-gradient(90deg,#ff6b7e,#ffd36b,#7dffb0);border-radius:6px;height:100%;transition:width .4s;display:block}.tb-spacer{flex:1;pointer-events:none!important}.tb-right{align-items:center;gap:6px;padding:5px 6px;display:flex}.btn{-webkit-appearance:none;appearance:none;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:11px;align-items:center;gap:7px;min-height:36px;padding:8px 11px;font-size:13px;transition:background .15s,transform .1s,box-shadow .2s;display:inline-flex}.btn:hover{background:#ffffff2b}.btn:active{transform:scale(.96)}.btn.on{background:#7cf3ff40;box-shadow:inset 0 0 0 1px #7cf3ff99}.btn.primary{color:#04081a;background:linear-gradient(135deg,#3fd0ff,#8a7bff);font-weight:700}.btn.primary:hover{filter:brightness(1.12)}.btn.danger{color:#ffb3bd;background:#ff6b7e33}.btn[disabled],.btn.dis{opacity:.4;pointer-events:none}.btn.sm{min-height:28px;padding:5px 9px;font-size:12px}.clock{font-variant-numeric:tabular-nums;color:var(--dim);text-align:right;padding:0 8px;font-size:13px;line-height:1.15}.clock b{color:var(--ink);font-size:14px;display:block}.speed{background:#ffffff0f;border-radius:12px;gap:2px;padding:2px;display:flex}.speed .btn{background:0 0;min-height:30px;padding:6px 9px;font-weight:600}.speed .btn.on{background:#7cf3ff47}.pulse{animation:1.3s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #ffe166cc}50%{box-shadow:0 0 0 9px #ffe16600}}#left{top:calc(66px + var(--safe-t));pointer-events:none;flex-direction:column;gap:8px;width:min(330px,100vw - 16px);display:flex;position:absolute;left:8px}#left>*{pointer-events:auto}#tutcard{border-left:3px solid var(--warn);padding:12px 14px;position:relative}#tutcard h4{letter-spacing:.03em;color:var(--warn);align-items:center;gap:8px;margin:0 0 4px;font-size:14px;display:flex}#tutcard p{color:var(--ink);margin:0 0 8px;font-size:13px;line-height:1.45}#tutcard .dots{gap:4px;margin:6px 0;display:flex}#tutcard .dots i{background:#ffffff29;border-radius:3px;width:22px;height:4px}#tutcard .dots i.d{background:var(--warn)}#tutcard .row{align-items:center;gap:6px;display:flex}#tutcard .count{font-variant-numeric:tabular-nums;color:var(--bad);font-size:20px;font-weight:700}.objective{padding:8px 12px;font-size:12.5px}.objective b{letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:3px;font-size:11px;display:block}.goalrow{color:var(--dim);align-items:center;gap:8px;margin:2px 0;display:flex}.goalrow .bar{background:#ffffff1a;border-radius:3px;flex:1;height:4px;overflow:hidden}.goalrow .bar i{background:var(--accent);height:100%;display:block}.pill{border-radius:999px;align-items:center;gap:7px;padding:6px 11px;font-size:12px;display:inline-flex}#upstream .pill{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--dim)}#upstream .pill b{color:var(--ink)}#upstream .pill.hot{border-color:var(--warn);color:var(--warn)}#conds{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0006;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip.bad{color:#ffb3bd;border-color:#ff6b7e80}.chip.good{color:#b6ffd0;border-color:#7dffb080}.chip i{background:#ffffff26;border-radius:3px;width:36px;height:4px;display:inline-block;overflow:hidden}.chip i b{background:currentColor;height:100%;display:block}#toasts{right:8px;top:calc(66px + var(--safe-t));pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;width:min(340px,100vw - 16px);display:flex;position:absolute}.toast{pointer-events:auto;cursor:default;align-items:flex-start;gap:10px;max-width:100%;padding:9px 12px;font-size:13px;line-height:1.35;animation:.35s ease-out tin;display:flex}.toast.link{cursor:pointer}.toast.bad{border-left:3px solid var(--bad)}.toast.good{border-left:3px solid var(--good)}.toast svg{margin-top:1px}.toast.out{opacity:0;transition:all .4s;transform:translate(30px)}@keyframes tin{0%{opacity:0;transform:translate(40px)scale(.96)}to{opacity:1;transform:none}}#zoomctl{right:10px;bottom:calc(86px + var(--safe-b));flex-direction:column;gap:8px;display:flex;position:absolute}#zoomctl .btn{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;justify-content:center;width:46px;height:46px;min-height:46px;padding:0;font-size:20px}#zoomctl .btn.go{background:linear-gradient(135deg,#3fd0ff8c,#8a7bff8c);border-color:#fff6}#zoomctl .hint{color:var(--accent);text-align:center;letter-spacing:.06em;text-shadow:0 1px 6px #000;align-self:flex-end;max-width:80px;font-size:11px}#dock{left:50%;bottom:calc(10px + var(--safe-b));background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.3);backdrop-filter:blur(18px)saturate(1.3);border:1px solid var(--line);border-radius:20px;gap:4px;max-width:calc(100vw - 16px);padding:6px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 40px #0006}.dbtn{-webkit-appearance:none;appearance:none;color:var(--dim);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:3px;min-width:62px;padding:7px 12px;font-size:11px;transition:all .15s;display:flex;position:relative}.dbtn svg{width:22px;height:22px}.dbtn:hover{color:var(--ink);background:#ffffff1a}.dbtn.on{color:var(--accent);background:#7cf3ff33}.dbtn .badge{background:var(--warn);width:8px;height:8px;box-shadow:0 0 8px var(--warn);border-radius:50%;position:absolute;top:4px;right:10px}.dbtn[disabled]{opacity:.3;pointer-events:none}.dbtn kbd{opacity:.5;font-family:inherit;font-size:9px;position:absolute;top:3px;left:7px}#buildsheet{left:50%;bottom:calc(92px + var(--safe-b));width:min(920px,100vw - 16px);padding:10px;display:none;position:absolute;transform:translate(-50%)}#buildsheet.open{animation:.25s ease-out sheet;display:block}@keyframes sheet{0%{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%)}}#buildsheet .hd{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 4px 8px;font-size:12px;display:flex}.bscroll{scrollbar-width:thin;touch-action:pan-x;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.bcard{border:1px solid var(--line);cursor:pointer;text-align:left;color:var(--ink);font:inherit;background:#ffffff0f;border-radius:12px;flex:0 0 148px;padding:9px 10px;transition:all .15s;position:relative}.bcard:hover{background:#ffffff1f;transform:translateY(-2px)}.bcard.sel{border-color:var(--accent);background:#7cf3ff26}.bcard .nm{align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.bcard .cat{letter-spacing:.1em;color:var(--mute);text-transform:uppercase;margin:1px 0 4px;font-size:10px}.bcard .ds{color:var(--dim);min-height:44px;font-size:11px;line-height:1.3}.bcard .cs{color:var(--ink);gap:8px;margin-top:5px;font-size:12px;display:flex}.bcard .cs span.no{color:var(--bad)}.bcard.lock{opacity:.45}.bcard.lock:after{content:"Locked";color:var(--warn);font-size:10px;position:absolute;top:8px;right:8px}#placebar{left:50%;bottom:calc(100px + var(--safe-b));background:var(--glass2);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;gap:8px;padding:8px;display:none;position:absolute;transform:translate(-50%)}#placebar.open{display:flex}#inspector{right:8px;top:calc(66px + var(--safe-t));width:min(310px,100vw - 16px);max-height:calc(100vh - 220px);margin-top:0;padding:12px 14px;display:none;position:absolute;overflow-y:auto}#inspector.open{animation:.25s ease-out tin;display:block}#inspector h3{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}#inspector .sub{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:11px}.close{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px;position:absolute;top:8px;right:8px}.close:hover{color:#fff;background:#ffffff1a}.bars{color:var(--dim);grid-template-columns:auto 1fr;align-items:center;gap:5px 10px;margin:8px 0;font-size:12px;display:grid}.bar{background:#ffffff1f;border-radius:4px;height:6px;overflow:hidden}.bar i{background:var(--accent);border-radius:4px;height:100%;transition:width .3s;display:block}.bar.red i{background:var(--bad)}.bar.green i{background:var(--good)}.bar.amber i{background:var(--warn)}.thought{color:var(--dim);border-left:2px solid var(--line);margin:8px 0;padding:2px 0 2px 9px;font-size:12.5px;font-style:italic}.kv{color:var(--dim);justify-content:space-between;padding:3px 0;font-size:12.5px;display:flex}.kv b{color:var(--ink);font-weight:600}.btnrow{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag{color:var(--dim);background:#ffffff1a;border-radius:999px;margin:2px 3px 2px 0;padding:2px 8px;font-size:11px;display:inline-block}.rel{cursor:pointer;color:var(--dim);align-items:center;gap:8px;padding:2px 0;font-size:12px;display:flex}.rel:hover{color:#fff}.rel .bar{flex:1}#humanpanel{left:8px;bottom:calc(92px + var(--safe-b));width:min(300px,100vw - 16px);padding:11px 13px;display:none;position:absolute}#humanpanel.open{display:block}#humanpanel h3{justify-content:space-between;align-items:center;margin:0 0 2px;font-size:14px;display:flex}#humanpanel .sub{color:var(--accent);margin-bottom:4px;font-size:12px}.inf{color:var(--dim);align-items:center;gap:4px;margin:6px 0;font-size:12px;display:flex}.inf i{border:1px solid var(--line);background:#ffffff1f;border-radius:50%;width:14px;height:14px}.inf i.f{background:radial-gradient(circle, #fff, var(--accent));box-shadow:0 0 8px var(--accent)}.nudges{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.nudges .btn{text-align:center;flex-direction:column;justify-content:center;gap:2px;min-height:44px;padding:6px 2px;font-size:10.5px;line-height:1.1}.nudges .btn svg{width:17px;height:17px}#humanpanel.collapsed .nudges,#humanpanel.collapsed .inf,#humanpanel.collapsed .bars,#humanpanel.collapsed .thought{display:none}#modal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:30;background:#03040c8c;justify-content:center;align-items:center;padding:12px;animation:.2s fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{border:1px solid var(--line);background:#0c0f20eb;border-radius:20px;flex-direction:column;width:min(980px,100%);max-height:calc(100% - 8px);animation:.25s ease-out pop;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 90px #0009}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:none}}.sheet .hd{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 20px 10px;display:flex}.sheet .hd h2{letter-spacing:.04em;flex:1;align-items:center;gap:10px;margin:0;font-size:19px;display:flex}.sheet .hd small{color:var(--dim);font-size:12px}.sheet .bd{touch-action:pan-y;padding:14px 20px 20px;overflow-y:auto}.sheet.narrow{width:min(560px,100%)}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tabs .btn.on{background:#7cf3ff40}.entry{border-left:3px solid var(--c,var(--accent));background:#ffffff0d;border-radius:12px;margin-bottom:8px;padding:11px 13px}.entry h5{margin:0 0 3px;font-size:14px}.entry p{color:var(--dim);margin:0;font-size:13px;line-height:1.45}.entry .meta{color:var(--mute);align-items:center;gap:10px;margin-top:5px;font-size:11px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;display:grid}.box{background:#ffffff0d;border-radius:14px;padding:12px 14px}.box h4{letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin:0 0 8px;font-size:12px}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td,.tbl th{text-align:left;border-bottom:1px solid #ffffff0f;padding:5px 6px}.tbl th{color:var(--mute);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.tbl tr.cl{cursor:pointer}.tbl tr.cl:hover{background:#ffffff12}.tbl .bar{vertical-align:middle;width:52px;display:inline-block}.rnode{border:1px solid var(--line);cursor:pointer;text-align:left;width:168px;color:var(--ink);background:#ffffff12;border-radius:13px;padding:9px 11px;font-family:inherit;font-size:12px;transition:all .15s;position:absolute}.rnode:hover{background:#ffffff24;transform:translateY(-2px)}.rnode.done{border-color:var(--good);background:#7dffb01f}.rnode.can{border-color:var(--warn);box-shadow:0 0 18px #ffd36b40}.rnode.lock{opacity:.45}.rnode b{align-items:center;gap:6px;margin-bottom:3px;font-size:13px;display:flex}.rnode small{color:var(--dim);line-height:1.3;display:block}.rnode .cost{color:var(--warn);margin-top:5px;font-weight:700}.rwrap{touch-action:pan-x pan-y;background:radial-gradient(circle at 20% 20%,#7cf3ff0f,#0000 60%);border-radius:14px;position:relative;overflow:auto}.rwrap svg{pointer-events:none;position:absolute;top:0;left:0}.tree-wrap{touch-action:pan-x pan-y;position:relative;overflow:auto}.tnode{cursor:pointer}.tnode:hover circle.main{stroke-width:3px}.decision{text-align:center}.decision .ic-big{width:54px;height:54px;color:var(--warn);background:#ffd36b26;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 8px;display:flex}.decision .ic-big svg{width:28px;height:28px}.decision h2{margin:4px 0 6px;font-size:20px}.decision p{color:var(--dim);max-width:520px;margin:0 auto 14px;font-size:14px;line-height:1.5}.opts{flex-direction:column;gap:8px;max-width:520px;margin:0 auto;display:flex}.opt{text-align:left;border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;background:#ffffff12;border-radius:13px;padding:11px 14px;transition:all .15s}.opt:hover{border-color:var(--accent);background:#7cf3ff29}.opt b{margin-bottom:2px;display:block}.opt small{color:var(--dim);font-size:12px}.opt.dis{opacity:.4;pointer-events:none}.report{text-align:center}.report .big{margin:4px 0;font-size:54px}.report .stats{flex-wrap:wrap;justify-content:center;gap:10px;margin:12px 0;display:flex}.report .stat2{background:#ffffff12;border-radius:12px;min-width:100px;padding:10px 16px}.report .stat2 b{font-size:24px;display:block}.report .stat2 small{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.report.good h2{color:var(--good)}.report.bad h2{color:var(--warn)}.menu-list{flex-direction:column;gap:8px;display:flex}.menu-list .btn{justify-content:flex-start;padding:11px 14px;font-size:14px}.helpgrid{color:var(--dim);grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px;display:grid}.helpgrid kbd{color:var(--ink);background:#ffffff1a;border-radius:6px;padding:1px 7px;font-family:inherit;font-size:12px}input[type=range]{accent-color:var(--accent);width:100%}#title{z-index:40;text-align:center;background:radial-gradient(#0406121a 0%,#040612b8 90%);flex-direction:column;justify-content:center;align-items:center;padding:24px;transition:opacity .9s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#title.out{opacity:0;pointer-events:none}#title h1{letter-spacing:.22em;background:linear-gradient(#fff 20%,#7cf3ff 60%,#8a7bff);color:#0000;text-shadow:0 0 60px #7cf3ff40;-webkit-background-clip:text;background-clip:text;margin:0;padding-left:.22em;font-size:clamp(40px,9vw,108px);font-weight:800;line-height:1}#title .tag2{color:var(--dim);letter-spacing:.14em;text-transform:uppercase;margin:14px 0 28px;font-size:clamp(13px,2.4vw,18px)}#title .btns{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}#title .btn{border-radius:16px;padding:14px 30px;font-size:16px}#title .sm{color:var(--mute);max-width:520px;margin-top:26px;font-size:12px;line-height:1.6}#loading{z-index:50;color:var(--dim);letter-spacing:.2em;text-transform:uppercase;background:#05060f;justify-content:center;align-items:center;font-size:13px;transition:opacity .6s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#loading.out{opacity:0;pointer-events:none}.ending{text-align:center;max-width:600px}.ending h2{letter-spacing:.1em;background:linear-gradient(90deg,#ffd36b,#ff9aa8,#8a7bff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0 14px;font-size:30px}.ending p{color:var(--dim);font-size:15px;line-height:1.7}@media (min-width:821px){#app.insp #zoomctl{right:328px}}.intrans #left,.intrans #inspector,.intrans #humanpanel,.intrans #buildsheet,.intrans #dock{opacity:.35;pointer-events:none;transition:opacity .3s}@media (max-width:820px){.tb-stats .stat.opt-d{display:none}.tb-world{min-width:0;max-width:46vw;padding:5px 10px}.tb-world b{font-size:13px}#topbar{flex-wrap:wrap;gap:6px}.tb-right .clock{display:none}.stat{padding:3px 6px;font-size:13px}.healthbar{width:46px}#left{top:calc(104px + var(--safe-t));width:min(300px,100vw - 80px)}#toasts{top:calc(104px + var(--safe-t));width:min(280px,56vw)}#inspector{width:auto;top:auto;left:8px;right:8px;bottom:calc(86px + var(--safe-b));max-height:42vh}#humanpanel{bottom:calc(86px + var(--safe-b));width:calc(100vw - 80px);max-width:340px}.dbtn{min-width:0;padding:7px 9px}.dbtn span{font-size:10px}.dbtn kbd{display:none}#zoomctl{bottom:calc(150px + var(--safe-b))}#zoomctl .btn{width:42px;height:42px;min-height:42px}.bcard{flex-basis:134px}#tutcard p{font-size:12px}.sheet .hd{padding:12px 14px 8px}.sheet .bd{padding:10px 14px 16px}}@media (max-width:520px){.dbtn span{display:none}.dbtn{padding:10px 11px}#left{width:calc(100vw - 70px)}.toast{font-size:12px}#toasts{width:62vw}.tb-right .btn span{display:none}}@media (max-height:560px){#inspector{max-height:60vh}#humanpanel .nudges .btn{min-height:36px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important}}
